解决Android Studio下Element layer-list must be declared问题
2017-05-29 10:08
851 查看
近期将一个项目从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问题
- 解决Android Studio下Element layer-list must be declared问题
- 快速解决Python问题:TypeError: list indices must be integers or slices, not str
- Pls-00302: Component 'Get_checkpoint_scns' Must Be Declared 问题的解决
- Android Studio selector 报 Element selector must be declared 的问题
- Android studio使用selector时出现Element selector must be declared的错误解决
- Element animation-list must be declared异常解决
- sudo出现sudo:must be setuid root问题的解决方法
- sudo出现sudo:must be setuid root问题的解决方法
- An SDK Target must be specified.” 问题解决(转载)
- org.hibernate.QueryException: addEntity() or addScalar() must be called on a sql query before executing the query 问题的解决
- Android 开发环境搭建中--- “An SDK Target must be specified.” 问题解决
- sudo出现sudo:must be setuid root问题的解决方法
- Error parsing XML. org.xml.sax.SAXParseException: Element type "sqlMapConfig" must be declared出错解决方法
- Attribute "column" must be declared for element type "property"解决办法
- 问题解决: Attribute value request.getParameter("id") is quoted with " which must be escaped when used wi
- Android 开发环境搭建中--- “An SDK Target must be specified.” 问题解决
- Android 开发环境搭建中--- “An SDK Target must be specified.” 问题解决(转载)
- Attribute "column" must be declared for element type "property"解决办法
- Attribute value is quoted with " which must be escaped when used within the value 问题解决