java - 如何防止 Android Archive 库中的重复依赖

标签 java android jar duplicates aar

我知道可能有很多关于此问题的资源,但它们似乎都不能直接解决我的问题,所以我开始了'

我认为 Android 库是独立的实体,因此一个库的内容不应影响另一个库的操作。这就是为什么我们有命名空间和包命名,但我错了。

我有两个 aar 文件已导入到我的 android 项目中。 aar 文件(即 A 和 B)位于我的 libs 文件夹中,并被添加到 gradle 中

compile (name: 'A', ext: 'aar);
compile (name: 'B', ext: 'aar);

一切都很顺利,直到我尝试构建我的项目,然后一切都陷入了困境。

库 A 有一个结构

android.fpi
        MtGpio.class

图书馆 B 也是如此

android.fpi
         MtGpio.class

理想情况下,它们是完全不同的库,如果它们碰巧具有相似的文件或结构,那应该不是问题。但确实如此,我受到了打击:

app:transformClassesWithJarMergingForDebug
com.................................ZipException: duplicate entry: android/fpi/MtGpio.class

我已经求助于我读过的各种解决方案,但我在这里,仍在寻找可行的解决方案。

我尝试了什么?

  1. MultiDexEnable true;

  2. 在将第二个 aar 库添加到 grable 文件时,我尝试排除以下类,但仍然遇到相同的错误。

     compile (name: 'B', ext: 'aar'){
         exclude group: 'com.android.fpi', module: 'MtGpio'
      }
    
  3. 其他几个主要与 support-v4 yada yada 相关的解决方案

现在我正在向 Android 高手寻求帮助。提前致谢。

最佳答案

也许您会对 Resolved versions for app (22.0.0) and test app (21.0.3) differ 中的答案有所帮助

尝试设置

configurations.all {
  resolutionStrategy {
    force (name: 'A', ext: 'aar')
  }
}

依赖项之前

关于java - 如何防止 Android Archive 库中的重复依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41651106/

相关文章:

android - 从Google Play商店删除应用程序

android - 我可以在不增加版本的情况下更新市场上的应用程序吗?

java - 从 jar 中调用 jar 外部的 java 文件

Java:游戏中未检测到 KeyListener

java - 处理多个目录和调度 spring 集成

android - ActionBar 菜单项中的 orderInCategory 是什么以及它为什么用于..?

java - Android Studio : How to configure Java module to contain embedded resources?

java - Android Studio - keystore 被篡改,或密码不正确

java - 为什么这段代码不返回 NullPointerException?

java - 如何在maven构建过程中链接本地存储库