首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >错误:属性"color“已经定义,请更新appcompat v-7。

错误:属性"color“已经定义,请更新appcompat v-7。
EN

Stack Overflow用户
提问于 2015-03-08 15:30:33
回答 4查看 14.1K关注 0票数 8

我正在尝试将Android项目中的appcompat-v7从20.0.0更新到21.0.0,以便使用材料设计组件,但我总是得到相同的错误:

错误:属性“颜色”已经被定义“

我不知道该做什么来纠正这个错误,我在网上搜索,但我无法得到答案。这是我的秤:

代码语言:javascript
复制
android {

    compileOptions.encoding = "iso-8859-1"
    compileSdkVersion 21
    buildToolsVersion "21.1.1"

    defaultConfig {
        applicationId "com.test"
        minSdkVersion 11
        targetSdkVersion 22
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }
}

dependencies {

    compile fileTree(dir: 'libs', include: ['*.jar'])
 compile 'com.android.support:support-v4:20.0.0'
    compile 'com.google.http-client:google-http-client-gson:1.19.0'
    compile 'com.google.code.gson:gson:2.2.4'
    compile "com.android.support:appcompat-v7:21.0.+"

}

这是冲突存在的途径。

代码语言:javascript
复制
C:\Users\Abel Dominguez\Documents\PROYECTOS_ANDROID\definitivos\d2\app\build\intermediates\exploded-aar\com.android.support\appcompat-v7\21.0.3\res\values\values.xml

这是另一个错误:

代码语言:javascript
复制
Error:Execution failed for task ':app:processDebugResources'.
> com.android.ide.common.internal.LoggedErrorException: Failed to run command:
    C:\Users\Abel Dominguez\AppData\Local\Android\sdk1\build-tools\build-tools-21.1.1\aapt.exe package -f --no-crunch -I C:\Users\Abel Dominguez\AppData\Local\Android\sdk1\platforms\android-21\android.jar -M C:\Users\Abel Dominguez\Documents\PROYECTOS_ANDROID\definitivos\d2\app\build\intermediates\manifests\full\debug\AndroidManifest.xml -S C:\Users\Abel Dominguez\Documents\PROYECTOS_ANDROID\definitivos\d2\app\build\intermediates\res\debug -A C:\Users\Abel Dominguez\Documents\PROYECTOS_ANDROID\definitivos\d2\app\build\intermediates\assets\debug -m -J C:\Users\Abel Dominguez\Documents\PROYECTOS_ANDROID\definitivos\d2\app\build\generated\source\r\debug -F C:\Users\Abel Dominguez\Documents\PROYECTOS_ANDROID\definitivos\d2\app\build\intermediates\res\resources-debug.ap_ --debug-mode --custom-package com.wherefriend -0 apk --output-text-symbols C:\Users\Abel Dominguez\Documents\PROYECTOS_ANDROID\definitivos\d2\app\build\intermediates\symbols\debug
Error Code:
    1
Output:
    C:\Users\Abel Dominguez\Documents\PROYECTOS_ANDROID\definitivos\d2\app\build\intermediates\res\debug\values\values.xml:94: error: Attribute "color" has already been defined
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-03-27 13:57:14

我读了@petey的答案后,问题就解决了。如果您查看错误消息中显示的行,就可以精确地确定哪个属性导致了问题。

在我的例子中,它是自定义color文件中的一个名为attrs的属性。那个自定义视图没有被使用,所以我只是评论了行和问题已经解决了。

可能的解决方案步骤

  1. 检查错误输出以查找导致问题的文件和行号的路径。
  2. 通过文件系统资源管理器访问该文件,并查找所讨论的行。
  3. 该行应该提到什么(自定义)视图有一个已经在某处定义的属性。
  4. 回到IDE中的项目中,找到该属性,如果它未被使用--注释,否则,如果使用它,就更改它的名称。
票数 14
EN

Stack Overflow用户

发布于 2015-03-30 19:21:30

您应该删除这一行。

代码语言:javascript
复制
compile 'com.android.support:support-v4:20.0.0'

并使用appcompat使用的相同的依赖关系:

代码语言:javascript
复制
compile 'com.android.support:support-v4:21.0.+'

另外,我建议修正21.0.3而不是21.0.+

票数 3
EN

Stack Overflow用户

发布于 2015-07-14 13:39:57

分级资源合并将来自所有依赖项的所有资源文件夹合并到单个文件夹中。如果存在重复的构建过程,则将失败。

幸运的是,如果您在下面的Output: label下面查看,您将找到解决问题的正确途径。

下面是一个例子

在你的例子中,它是android-support-v7-appcompat\res\values\attrs.xml:476: error: Attribute "attributeName" has already been defined

您还可以从命令行构建项目并获得正确的路径。attributeName在第476行的values\attrs.xml文件中,您可以找到一个名为"attributeName“的属性。最有可能是你自己的风格,你必须改变,以摆脱重复。

因此,现在,当您知道原因时,您可以在您的项目模块中找到该属性,并将其替换为不同的名称。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28928196

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档