Невозможно выполнить 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;

Одним из популярных решений является отключение контейнера "частных библиотек Android" от пути создания. Я не могу этого сделать, потому что в этом контейнере есть несколько библиотек.

Другим решением является разметка любой дублированной библиотеки, явно добавленной в форме .jar. У меня нет таких библиотек.

В моем случае дублирующая библиотека: android-support-v7-appcompat.jar У меня есть это (непосредственно ссылка из папки sdk) в этих двух контейнерах:

1.) Частные библиотеки Android

2.) Зависимости Android

Проблема заключается в том, что просто невозможно полностью отключить любой из этих двух контейнеров, потому что оба они содержат другие необходимые библиотеки. Но я также не могу удалить только этот дублирующий файл .jar из обоих контейнеров.

EDIT: Нотабене когда я добавляю библиотеку v7compat support_project в свой проект, он входит в оба контейнера. Должен быть какой-то способ, чтобы он включался только в один.

Может ли кто-нибудь помочь мне, как я могу это сделать?

screenshot

screenshot2 (unable to delete)

Ответы

Ответ 1

РЕШЕННОЕ ПОСМОТРЕТЬ

то, что на самом деле вызывало проблему, - это болт-андроидная библиотека. было две РАЗЛИЧНЫЕ версии этого конфликта. facebookdk поставляется с болтами-андроид-1.1.2, а appcompatv7 - с 1.1.4.

Я не отмечен контейнер личных библиотек Android в проекте библиотеки FacebookSDK, в котором содержится болт-андроид-1.1.2. В результате у моего проекта теперь была только одна версия, 1.1.4

теперь он отлично работает

повторяющиеся записи appcompatv7 никогда не беспокоят

Ответ 2

Я столкнулся с этим недавно в своем собственном проекте, который вы используете, вы можете перейти в свою папку Android вашего проекта. и в терминале нажмите эту команду "./gradlew app: dependencies", чтобы увидеть дерево зависимостей. Я нашел два пакета для андроидных болтов под фейсбуком sdk. если вы исключите этот пакет из facebook sdk, все будет хорошо работать снова

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

Ответ 3

Это может произойти при добавлении facebook SDK на Android, вы можете решить его с помощью

compile ("com.facebook.android:facebook-android-sdk:4.1.0") {
    exclude group: 'com.parse.bolts', module: 'bolts-android'
}

Ответ 4

так как реакционная версия обновлена ​​до 0.31.0, если вы хотите интегрировать com.facebook.fresco:animated-gif:0.10.0, у которого есть com.parse.bolts, вы можете сделать вот так:

 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'
}