繁体   English   中英

Android设计支持和其他库给出了gradle构建错误:“ headerLayout”已经定义

[英]Android design support and other library give gradle build error: “headerLayout” has already been defined

我想添加设计支持库(com.android.support:design:22.2.0),但出现了以下错误消息:

“ headerLayout”已经定义

我试图从我的图书馆列表中找到哪个图书馆在使用它,也许是这个图书馆: https : //github.com/traex/ExpandableLayout

如何同时使用主题? 谢谢!

编辑:这是一些细节:

错误:(1)属性“ headerLayout”已定义...

... debug \\ values \\ values.xml:440:错误:属性“ headerLayout”已经定义

这是440行:

<declare-styleable name="NavigationView">
    <attr name="android:background"/><attr name="android:fitsSystemWindows"/>
    <attr name="android:maxWidth"/><attr name="elevation"/>
    <attr format="reference" name="menu"/>
    <attr format="color" name="itemIconTint"/>
    <attr format="color" name="itemTextColor"/>
    <attr format="reference" name="itemBackground"/>
    <attr format="reference" name="headerLayout"/>
</declare-styleable>

并且我找到了另一个具有此引用名称的项目,它来自ExpandableLayout:

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

解决办法是什么? 因为我无法修改这些属性。

如果发布您的错误日志和受影响代码的代码片段,它将更加有用。

它似乎不像是一个依赖项错误,请检查是否有一个名为headerLayout的变量,并查看是否已多次声明该变量。

编辑:

一种解决方法是将名称“ headerLayout”之一更改为其他名称。 当然,对它的所有引用也必须更新。 这是一个歧义错误。

这是一个老问题,但是我还是会回答,也许会帮助别人。

将ExpandableLayout的版本更改为:

compile 'com.github.traex.expandablelayout:library:1.3'

比起您还有其他问题:

Error:(16) No resource identifier found for attribute 'contentLayout' in package .... 

更改:

contentLayout ---> el_contentLayout
headerLayout  ---> el_headerLayout

如果您在JAVA中调用contentLayout或标头布局,请更改:

getHeaderRelativeLayout()  ---->  getHeaderLayout()
getContentRelativeLayout() ---->  getContentLayout()

一切都会很好:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM