属性***已经定义

时间:2015-09-19 11:27:19

标签: android

运行我的Android应用程序时收到以下错误。

/home/vaibhav/AndroidStudioProjects/appName/app/src/main/res/values/colors.xml 
Error:(2) Attribute "headerLayout" has already been defined
Error:Execution failed for task ':app:processDebugResources'.com.android.ide.common.process.
ProcessException: org.gradle.process.internal.ExecException: 
Process 'command '/home/vaibhav/Android/Sdk/build-tools/22.0.1/aapt'' finished with non-zero exit value 1

问题是没有属性" headerLayout"在colors.xml文件中。我怎样才能找到" headerLayout"的重复实例?定义?

编辑:所以我发现生成的R文件中已经存在任何名为" headerLayout"的属性。看起来我有两个依赖项,并且都具有属性" headerLayout"。如何消除冲突?

3 个答案:

答案 0 :(得分:1)

我找到了解决问题的方法。这基本上是一个android问题。参考 https://code.google.com/p/android/issues/detail?id=22576

即使它们来自项目中的不同库,也不能具有相同的属性名称。我不得不更改库代码中的属性名称。

答案 1 :(得分:0)

我猜你有view_expandable_headerlayout的问题。 headerLayout与设计库重复。 打开Atrrs.xml 然后将headerLayout重命名为ex_headerLayout

<declare-styleable name="ExpandableLayout">
        <attr name="ex_headerLayout" format="reference" />
        <attr name="contentLayout" format="reference" />
        <attr name="duration" format="integer" />
    </declare-styleable> 

它会起作用。

答案 2 :(得分:0)

Attribute "closeIcon" has already been defined
Attribute "iconTint" has already been defined
Attribute "icon" has already been defined

更新您的Android SDK生成工具。 转到工具-> Android -> Android SDK Manager -> 工具标签-> Android SDK构建工具-> 选择版本(对我来说是27.0.3)和应用更改enter image description here