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