我最近决定在我的应用中加入appcompat-v7
库,以便获得对材料设计的支持,并使用较新的ActionBarDrawerToggle
,因为support-v4
中的那个已经弃用。
我的compileSdkVersion
和targetSdkVersion
设置为23
。 support-v4
和appcompat-v7
的版本都设置为23.1.0
。
但是,只要我对项目进行同步,就会遇到以下错误:
AGPBI:{" kind":"错误","文字":"属性\"颜色\"已经过了 定义""来源":[{"文件":" /Users/work/source/android/app.android.whitelabel/WhiteLabelApp/src/main/ RES /值/ config.xml的""位置" {" STARTLINE":1}}],"原":"&# 34;}
环顾四周,我发现许多人在不同版本的appcompat库中遇到了类似的问题。我也理解,这个错误表明我的color
文件中有一些config.xml
值与其他文件冲突。但是,截至目前,该错误并没有为我提供任何关于哪个color
属性存在冲突的线索。我的config.xml
文件还定义了许多此类项目特定的color
属性。
如果删除appcompat-v7
库,则此错误消失。
请帮忙吗?
答案 0 :(得分:1)
首先尝试从config.xml中删除这些颜色
您是否在xml文件中定义了其他任何颜色? (是吗? - >删除它)
这似乎是一个引用问题。
答案 1 :(得分:0)
嗯,在这种特殊情况下,根问题最终是attrs.xml
文件夹下的values
文件定义了自定义标记,不幸的是,它被命名为color
。这是一些遗留定义,甚至不再使用。
不知何故,合并appcompat-v7
库会触发错误(想知道为什么support-v4
没有!)。
令情况变得令人沮丧和误导的是gradle
指出错误在config.xml
,而它在attrs.xml
文件中!
最后,将res
个文件一次一个地复制到一个新的项目结构中的缓慢而繁琐的方法揭示了真正的问题所在。
感谢 @Timo 耐心地试图帮助我!