我知道可能有很多关于此问题的资源,但它们似乎都不能直接解决我的问题,所以我开始了'
我认为 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
我已经求助于我读过的各种解决方案,但我在这里,仍在寻找可行的解决方案。
我尝试了什么?
MultiDexEnable true;
在将第二个 aar 库添加到 grable 文件时,我尝试排除以下类,但仍然遇到相同的错误。
compile (name: 'B', ext: 'aar'){ exclude group: 'com.android.fpi', module: 'MtGpio' }
其他几个主要与 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/