多个“android-support-v4”库之间的冲突

时间:2013-05-12 13:25:20

标签: java android eclipse

我在Eclipse中的项目中导入了2个外部库(库A和库B)。这些库都需要“android-support-v4.jar”库。因此,在编译时,它会导致错误:

Jar mismatch! Fix your dependencies

我已经阅读了所有类似的问题,并尝试从我的项目中删除“androi-support-v4.jar”库。按照说明操作:属性 - > Java构建路径 - >图书馆 - >选择“android-support-v4.jar” - >所有按钮都被禁用。我不能删除它???

enter image description here

即使在我可以从我的项目中删除“android-support-v4.jar”的情况下,两个库A和B之间仍然存在冲突。因为A和B都需要“android-support-v4.jar” ”。如果我从库A中删除“android-support-v4.jar”,那么库A就无法编译。

2 个答案:

答案 0 :(得分:9)

感谢@SercanOzdemir的回答。解决方案是我的项目,所有依赖库必须只推断一个“android-support-v4.jar”。所以我所做的就是

  • 在我的项目中,我从库A
  • 添加“android-support-v4.jar”
  • 在库B中,我删除了它的jar,并从库A中添加“android-support-v4.jar”

所以所有这些都只推断出来自图书馆A的一个“android-support-v4.jar”

答案 1 :(得分:2)

您可以使用SupportLibrary jar文件创建一个新的库项目,并让所有需要支持库的项目引用它。这样,您只需要管理jar的1个副本。每次更新支持库时,请确保执行干净的构建。

您始终可以保留SupportLibrary的通用副本,并让所有项目在构建路径中将其添加为外部jar。但它不允许您通过创建项目来尽快更新库。

PS:创建SupportLibrary项目时,请确保不包含任何资源。通常,在创建新项目时,eclipse会创建values-v11 / styles.xml和values-v14 / styles.xml。当另一个库项目包含您的SupportLibrary项目时,这可能会导致构建失败(特别是如果它针对Honeycomb下面的API)。