我在我的Android项目中使用 android-support-v7-appcompat 作为库。现在我想将 actionbarsherlock 包含为另一个库项目。当我添加第二个库时,它会产生如下许多错误
android-support-v7-appcompat\res\values\attrs.xml:476: error: Attribute "attributeName" has already been defined
通过更改一个属性值,它的相关代码段是我尝试过的一个解决方案。但是当上面有近80条线路时,它会变得凌乱。还有其他方法可以解决这个问题吗?
答案 0 :(得分:9)
解决此问题的正确方法是更新所有相关项目和库项目中的Android支持库。在我的例子中,我使用了Android支持库,也使用了一个库项目来实现我的应用程序。当我更新两个库时,问题就解决了。更新Android支持库的方式是;
答案 1 :(得分:3)
从属性 =>中删除appcompact支持库项目的Android
答案 2 :(得分:3)
Gradle Resource Merger合并来自所有依赖项的所有资源文件夹并放入单个文件夹中。如果存在重复,则构建过程将失败。
幸运的是,如果你看下面的输出:标签,你会找到解决问题的正确途径。
这是一个例子
在你的情况下是
android-support-v7-appcompat\res\values\attrs.xml:476: error: Attribute "attributeName" has already been defined
您还可以从命令行构建项目并获取正确的路径。
的attributeName
在第476行的values\attrs.xml
文件中,你会发现一个名为" attributeName"的属性。最有可能是你自己的风格,你必须改变,以摆脱重复。
现在,当您知道原因时,可以在项目模块中找到该属性并用不同的名称替换它。
答案 3 :(得分:1)
我通过从项目中删除appcompact并将样式更改为
来解决此问题<style name="AppBaseTheme" parent="Theme.Sherlock">
答案 4 :(得分:0)
我更新了构建工具版本并重新生成,它工作正常。