19

我在我的 Android 项目中使用android-support-v7-appcompat作为库。现在我想将actionbarsherlock作为另一个库项目包括在内。当我添加第二个库时,它给出了很多错误,如下所示

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

通过更改一个属性值,它的相关代码片段是我尝试过的一种解决方案。但是当有近 80 行像上面这样时,它会变得一团糟。有没有其他方法可以解决这个问题?

4

5 回答 5

9

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

  • 右键单击项目
  • 从弹出窗口中选择Android 工具
  • 选择添加支持库
于 2014-01-29T08:55:14.077 回答
3

从Properties => Android中删除 appcompact 支持库项目

于 2014-09-21T07:06:58.613 回答
3

Gradle Resource Merger 将所有依赖项中的所有资源文件夹合并到一个文件夹中。如果有重复,构建过程将失败。

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

这是一个例子

在此处输入图像描述

在你的情况下 android-support-v7-appcompat\res\values\attrs.xml:476: error: Attribute "attributeName" has already been defined

您还可以从命令行构建项目并获得正确的路径。attributeName 在values\attrs.xml第 476 行的文件中,您会发现一个名为“attributeName”的属性。很可能是您自己的样式,您必须更改以摆脱重复。

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

于 2015-07-14T13:37:46.030 回答
1

我通过从项目中删除 appcompact 并将样式更改为

<style name="AppBaseTheme" parent="Theme.Sherlock">
于 2014-04-30T10:47:44.520 回答
0

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

于 2017-02-08T21:06:48.603 回答