Android迁移到appcompat v7会导致错误:属性"颜色"已定义

时间:2015-11-05 17:43:32

标签: android appcompat-v7-r23

我最近决定在我的应用中加入appcompat-v7库,以便获得对材料设计的支持,并使用较新的ActionBarDrawerToggle,因为support-v4中的那个已经弃用。

我的compileSdkVersiontargetSdkVersion设置为23support-v4appcompat-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库,则此错误消失。

请帮忙吗?

2 个答案:

答案 0 :(得分:1)

首先尝试从config.xml中删除这些颜色

您是否在xml文件中定义了其他任何颜色? (是吗? - >删除它)

这似乎是一个引用问题。

答案 1 :(得分:0)

嗯,在这种特殊情况下,根问题最终是attrs.xml文件夹下的values文件定义了自定义标记,不幸的是,它被命名为color。这是一些遗留定义,甚至不再使用。

不知何故,合并appcompat-v7库会触发错误(想知道为什么support-v4没有!)。

令情况变得令人沮丧和误导的是gradle指出错误在config.xml,而它在attrs.xml文件中!

最后,将res个文件一次一个地复制到一个新的项目结构中的缓慢而繁琐的方法揭示了真正的问题所在。

感谢 @Timo 耐心地试图帮助我!