错误:在Android中使用两个库项目时,已经定义了属性“***”

时间:2013-11-15 07:44:55

标签: android actionbarsherlock android-support-library xml-attribute

我在我的Android项目中使用 android-support-v7-appcompat 作为库。现在我想将 actionbarsherlock 包含为另一个库项目。当我添加第二个库时,它会产生如下许多错误

android-support-v7-appcompat\res\values\attrs.xml:476: error: Attribute "attributeName" has already been defined

通过更改一个属性值,它的相关代码段是我尝试过的一个解决方案。但是当上面有近80条线路时,它会变得凌乱。还有其他方法可以解决这个问题吗?

5 个答案:

答案 0 :(得分:9)

解决此问题的正确方法是更新所有相关项目和库项目中的Android支持库。在我的例子中,我使用了Android支持库,也使用了一个库项目来实现我的应用程序。当我更新两个库时,问题就解决了。更新Android支持库的方式是;

  • 右键单击项目
  • 从弹出窗口中选择 Android工具
  • 选择 添加支持库

答案 1 :(得分:3)

属性 =>中删除appcompact支持库项目的Android

答案 2 :(得分:3)

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

幸运的是,如果你看下面的输出:标签,你会找到解决问题的正确途径。

这是一个例子

enter image description here

在你的情况下是 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)

我更新了构建工具版本并重新生成,它工作正常。