无法执行 dex:多个 dex 文件定义 Lbolts/AggregateException

我确实知道之前已经报告过很多次多个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形式显式添加的任何重复库。我没有这样的库。

在我的情况下,重复的库是:我在这两个容器中拥有它(直接从sdk文件夹引用):android-support-v7-appcompat.jar

1.) 安卓私人图书馆

2.) 安卓依赖

问题是我无法完全取消选中这两个容器中的任何一个,因为它们都包含其他必要的库。但我也无法从任何一个容器中删除这个重复的.jar文件。

编辑:注意当我将android-support-v7-appcompat library_project添加到我的项目中时,它会进入两个容器。必须有某种方法,以便只进入一种方法。

任何人都可以帮我怎么做?

screenshot

screenshot2 (unable to delete)


答案 1

解决

bolts-android图书馆是这里真正的麻烦。它有两个不同的版本导致冲突。图书馆带来了 ,并带来了 .FacebookSDKbolts-android-1.1.2android-support-v7-appcompatbolts-android-1.1.4

我在库项目中取消了Android Private Libraries容器的标记,其中包含.因此,我的项目现在只有一个版本,解决冲突。它现在运行良好。FacebookSDKbolts-android-1.1.2bolts-android-1.1.4

此外,事实证明,重复的条目不是问题。android-support-v7-appcompat


答案 2

我最近在我的react原生项目上遇到了这个问题,你可以去你的项目的Android文件夹。并在终端中点击此命令“./gradlew app:dependencies”以查看依赖关系树。我在Facebook sdk下找到了两个机器人螺栓包。如果你从Facebook sdk中排除这个包,事情会再次正常工作

compile ('com.facebook.react:react-native:+') {
   exclude group: 'com.parse.bolts', module: 'bolts-tasks'
}

推荐