属性值在两个不同的库中声明

Attr value is declared in two different libraries

我在 Android Studio 中向我的项目添加了一个库。但是当我试图编译我的项目时,我得到了这个错误:

Attribute barColor has already been declared.

之后我检查了整个项目并注意到另一个库已经声明了相同的属性!

我该如何解决这个冲突,或者我可以不同时使用这些库吗?

引起冲突的库是:

解决此问题的最简单方法是仅重命名其中一个库中的属性。为此,您必须:

  1. 下载其中一个库的源代码并将其添加到您的项目中。
  2. 现在您必须重命名刚刚下载的源代码中的属性。最简单的方法是通过重构。因此,右键单击有问题的属性,然后 select 重构 -> 重命名。或者只需将光标放在属性上并点击 Shift + F6。然后为属性输入一个新名称。
  3. 大多数时候重构应该已经为您完成了所有工作,但有时您需要在重构后手动修复一些东西。只需尝试重建您的项目,直到您没有遇到任何编译错误并在错误出现时进行修复。

在那之后你应该就万事大吉了。既然属性有不同的名称,应该不会有任何冲突!

创建一个新文件夹并将其命名为 values-v21 然后将那个特定的 xml 文件放入 attr.xml 导致该文件夹重复。这样做不会混淆或合并两个相同的资源,但当然这样做你说这个 attr 将仅从 sdk 21 及更高版本开始使用,具体取决于你将提供的 sdk 版本。