解决Android Studio下Element layer-list must be declared问题
2015-07-08 22:44
543 查看
最近将一个项目从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的优点,是什么资源就应该放到什么位置,不容易让人产生疑惑。所以在Android Studio下的解决方法就是把这些资源文件移动到drawable资源文件夹下,这个问题解决。
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的优点,是什么资源就应该放到什么位置,不容易让人产生疑惑。所以在Android Studio下的解决方法就是把这些资源文件移动到drawable资源文件夹下,这个问题解决。
相关文章推荐
- prototype Element学习笔记(篇一)
- prototype Element学习笔记(Element篇三)
- prototype Element学习笔记(篇二)
- 块元素block element和内联元素inline element
- 分离式javascript取当前element值的代码
- Jquery替换已存在于element上的event的方法
- 关于jQuery object and DOM element
- angular.element方法汇总
- Android中的Shape和Selector的结合使用实例
- Android Selector和Shape的使用方法
- 关于Android Studio 和 Gradle的那些事儿
- android之shape使用
- android:shape的使用
- 1. 一维数组
- jsoup的Node类
- Android Studio android.view.InflateException: Error inflating class com.baidu.mapapi.map.MapView
- Android Studio集成ShareSDK免费短信平台
- Html DOM、Ext Element及Component三者之间的区别(Ext入门基础)
- android 学习笔记之一
- Android Studio导入第三方类库的方法