我知道之前已经多次报告了多个dex问题,但是在我的情况下,似乎没有一个解决方案可行。
控制台:
Unable to execute dex: Multiple dex files define Lbolts/AggregateException;
Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files define Lbolts/AggregateException;
一种流行的解决方案是从buildpath取消标记“Android私有库”容器。我不能这样做,因为我需要的容器中还有一些库。
另一个解决方案是取消标记以.jar形式显式添加的任何重复库。我没有这样的图书馆。
我的案例中的重复库是:android-support-v7-appcompat.jar
我在这两个容器中有它(直接从sdk文件夹引用):
1。)Android私人图书馆
2。)Android Dependencies
问题是我无法完全解开这两个容器中的任何一个,因为它们都包含其他必需的库。但我也无法从任何容器中删除这个重复的.jar文件。
修改 注:当我将android-support-v7-appcompat library_project添加到我的项目时,它进入两个容器。必须有某种方式只进入一个。
任何人都可以帮助我如何做到这一点吗?
答案 0 :(得分:22)
解决了一些
bolts-android
库是真正的麻烦。有两个不同版本的导致冲突。 FacebookSDK
库带来bolts-android-1.1.2
,android-support-v7-appcompat
带来bolts-android-1.1.4
。
我在FacebookSDK
库项目中取消标记了Android私有库容器,其中包含bolts-android-1.1.2
。结果,我的项目现在只有一个版本bolts-android-1.1.4
,解决冲突。它现在运行良好。
另外,事实证明,重复的android-support-v7-appcompat
条目不是问题。
答案 1 :(得分:7)
我最近在我的本机项目中遇到过这个问题,你可以去你项目的android文件夹。并在终端点击此命令“./gradlew app:dependencies”以查看依赖树。我在facebook sdk下找到了两个用于android螺栓的软件包。如果你从facebook sdk中排除这个包,那么事情会再次正常工作
compile ('com.facebook.react:react-native:+') {
exclude group: 'com.parse.bolts', module: 'bolts-tasks'
}
答案 2 :(得分:3)
将Facebook SDK添加到Android时可能会发生这种情况,您可以通过以下方式解决:
compile ("com.facebook.android:facebook-android-sdk:4.1.0") {
exclude group: 'com.parse.bolts', module: 'bolts-android'
}
答案 3 :(得分:0)
由于反应版本已更新为0.31.0,当您要整合com.facebook.fresco:animated-gif:0.10.0
具有com.parse.bolts
的{{1}}时,您可能会这样做:
compile ('com.facebook.react:react-native:+') {
exclude group: 'com.parse.bolts', module: 'bolts-tasks'
}
compile ('com.facebook.fresco:animated-gif:0.10.0'){
exclude group: 'com.parse.bolts', module: 'bolts-tasks'
}