1. 程式人生 > >解決Android Studio下Element layer-list must be declared問題

解決Android Studio下Element layer-list must be declared問題

post 報錯 ont ack 是個 oid 應該 track 產生


近期將一個項目從Eclipse轉到Android Studio。

項目中使用了環信demo中的一些xml資源,轉換後發現color資源目錄下諸如layer-list或者shape等標簽報Element xxx must be declared錯誤,大意就是layer-list或者shape這些標簽未定義。


layer-list或者shape等這些標簽是經常使用的標簽,Android Studio竟然報未定義錯誤,在Eclipse中卻沒有這個問題。網上不少人說這是Android Studio的一個bug,事實正相反,這是Android Studio的長處。


對於這個問題,首先要了解layer-list、shape等這些標簽是什麽東西。

每一種標簽都有相應的資源類,layer-list、shape等等標簽代表的事實上是個drawable資源。layer-list終於會解析為LayerDrawable,shape會解析為ShapeDrawable。其他的標簽類似。

由此能夠看出layer-list或者shape等資源是drawable資源,應該放到drawable資源目錄下。color資源不包含drawable資源,當然未定義drawable類型的標簽。


Eclipse不像Android Studio,對資源類型的檢查沒有那麽嚴格,所以沒有報錯誤。我認為這倒是Android Studio的長處,是什麽資源就應該放到什麽位置,不easy讓人產生疑惑。所以在Android Studio下的解決方法就是把這些資源文件移動到drawable資源目錄下。這個問題解決。

解決Android Studio下Element layer-list must be declared問題