Android Studio 3.0 Выполнение не выполнено для задачи: невозможно объединить dex
Андроид-студия получала ошибку сборки при выполнении сборки со следующей «Ошибка: выполнение выполнено с ошибкой для задачи»: app: transformDexArchiveWithExternalLibsDexMergerForDebug.
java.lang.RuntimeException: java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException: невозможно слить dex ”
мое приложение: build.gradle
- Lollipop: рисовать позади statusBar с его цветом, установленным на прозрачный
- Как вызвать калькулятор Android в моем приложении для всех телефонов
- Android (JSONObject) Как я могу пройти через плоский объект JSON, чтобы получить каждый ключ и каждое значение
- Как разархивировать файлы программно в Android?
- Как добавить меню опций панели действий в Android Fragments
apply plugin: 'com.android.application' android { compileSdkVersion 26 buildToolsVersion '26.0.2' defaultConfig { applicationId "com.pdroid.foodieschoice" minSdkVersion 16 targetSdkVersion 25 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) compile 'com.android.support.constraint:constraint-layout:1.0.2' compile 'com.firebaseui:firebase-ui-auth:2.3.0' testCompile 'junit:junit:4.12' } configurations.all { resolutionStrategy { force 'com.android.support:appcompat-v7:26.0.1' force 'com.android.support:support-compat:26.0.1' force 'com.android.support:support-core-ui:26.0.1' force 'com.android.support:support-annotations:26.0.1' force 'com.android.support:recyclerview-v7:26.0.1' } } apply plugin: 'com.google.gms.google-services'
любые решения
Редактирование: я сделал с образцом через сайт github firebase и решил
- Как обрабатывать несколько таймеров обратного отсчета в ListView?
- Добавление растрового изображения водяного знака поверх видео в android: MediaMuxer 4.3 или ffmpeg
- Как синхронизировать Android с iTunes?
- adjustPan не препятствует клавиатуре закрывать EditText
- Android: изменение размера только частей изображения с помощью мягкой клавиатуры на экране
- Как включить виртуализацию без использования BIOS?
- Android-x86 6.0 Marshmallow в VirtualBox: установка застряла на GRUB
- Обнаружение изменения вкладки ViewPager внутри fragmentа
Эта ошибка возникает при добавлении внешней библиотеки, которая может быть несовместима с вашим compileSdkVersion
.
Будьте осторожны при добавлении external library
.
Я потратил 2 дня на эту проблему, и, наконец, это было решено после этих шагов.
-
Убедитесь, что все ваши библиотеки поддержки такие же, как
compileSdkVersion
вашегоbuild.gradle(Module:app)
в моем случае это26
. -
В категории defaultConfig введите multiDexEnabled true . Это важная часть.
-
Перейти к файлу | Настройки | Создание, выполнение, развертывание | Мгновенный запуск и попытка включения / выключения Instant Run для горячей замены … и нажмите « ОК»
-
Sync
проекта. -
Наконец, перейдите к сборке | нажмите « Восстановить проект» .
-
Примечание. Сначала проект перестроения очищает, а затем создает проект.
Попробуйте добавить это в gradle
android { defaultConfig { multiDexEnabled true } }
Просто попробуйте сделать «Build -> Clean Project». Это решило проблему для меня.
Для проекта, основанного на Кордове, cordova clean android
до сборки снова, как предложил @mkimmet .
Для меня добавление
multiDexEnabled true
а также
packagingOptions { exclude 'META-INF/NOTICE' exclude 'META-INF/LICENSE' exclude 'META-INF/notice' exclude 'META-INF/notice.txt' exclude 'META-INF/license' exclude 'META-INF/license.txt' }
в файл приложения Build.gradle удалось решить проблему
То же самое случилось со мной, выяснилось, что я был в середине обновления до AS 3.0.1, и после того, как я сделал обновление, очистил и перестроил приложение, все было исправлено.
Для меня эта фиксированная ошибка меняла одну строку в зависимостях gradle моего приложения.
из этого :
compile('com.google.android.gms:play-services-gcm:+') { force = true }
Для этого :
compile('com.google.android.gms:play-services-gcm:11.8.0') { force = true }
Также убедитесь, что ваше приложение является подclassом MultiDexApplication
import android.support.multidex.MultiDexApplication class App : MultiDexApplication()
или, если не подclassифицировать class Application, добавьте в AndroidManifest.xml
Вы находитесь между обновлениями SDK или платформы? Если да, заполните их полностью, а затем попытайтесь продолжить. Обычно я обновляю отдельные пакеты, которые необходимо обновить, чтобы получить все обновление, которое иногда может подниматься до 2,5 ГБ. Выполнение этого полного обновления иногда терпит неудачу. После обновления до Android Studio 3.0 у меня было несколько обновлений SDK, и эта ошибка была выше, поскольку все пакеты не обновлялись. Как только я обновил все пакеты, эта ошибка исчезла.
В моем случае изменение версии библиотеки firebase от 2.6.0 до 2.4.2 исправило проблему
Для меня проблема заключалась в использовании Java 1.8 в модуле, но не в модуле приложения. Я добавил это в графу построения приложения и работал:
android{ compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 }
Та же проблема. Я включил multidex: defaultConfig {applicationId “xxx.xxx.xxxx” minSdkVersion 24 targetSdkVersion 26 multiDexEnabled true
Я очистил кеш, выполнил gradleир, очистил, перестроил, сделал, попытался убедиться, что конфликтов в импортированных библиотеках (удалены все транзитивные зависимости) и сделаны все обновления. Все еще:
Ошибка: выполнение не выполнено для задачи ‘: app: transformDexArchiveWithExternalLibsDexMergerForDebug’. java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException: невозможно слить dex
Оказывается, assembly не понравилась: реализация ‘org.slf4j: slf4j-android: 1.7.21’
Когда версия Android Studio 3.0.1, версия Gradle версии 4.1 и Android PluginVersion 3.0.0, она столкнется с этой проблемой. Тогда я понижаю версию Gradle версии 3.3, Android Android равен нулю, нет такой проблемы.
У меня было это, когда запрошенная версия SDK не соответствовала зависимостям. Вы можете щелкнуть выделенную линию и исправить это, нажав красную лампочку. Не нужно находить фактическую версию, просто дайте IDE понять это для вас. И добавьте google repo в maven config.
Я получал ту же ошибку, и в моем случае ошибка была решена, когда я исправил ошибку сборки, которая была связана с другим вариантом сборки, чем тот, который я в настоящее время создавал.
Я строил вариант сборки, который я смотрел просто отлично, без ошибок, но попытка отладки вызвала ошибку app:transformDexArchiveWithExternalLibsDexMergerForDebug
. Как только я переключился на сборку другого варианта сборки, я поймал свою ошибку в процессе сборки и исправил ее. Это, казалось, разрешило мое app:transformDexArchiveWithExternalLibsDexMergerForDebug
проблема для всех вариантов сборки.
Обратите внимание, что эта ошибка не была включена в внешний внешний модуль, но в пределах определенного исходного набора варианта сборки, который ссылался на внешний модуль. Надеюсь, это полезно для тех, кто может видеть тот же случай, что и я!
Я сделал и исправил эту проблему, просто выполняя эти задания в своем коде
Открыть -> build.gradle Изменить значение из
compile 'com.google.code.gson:gson:2.6.1'
в
compile 'com.google.code.gson:gson:2.8.2'
Чтобы удалить эту проблему, просто выполните одну зависимость. Эта проблема возникает, когда мы используем несколько разных сервисов с одного и того же сервера. Предположим, мы используем рекламу и Firestore в проекте, и у обоих есть repository maven. поэтому нам нужно вызывать разные данные, так как в репозитории нам нужна зависимость dex для реализации. Новое обновление Зависимость: –
implementation 'com.android.support:multidex:1.0.3'
Я уверен, что он решит вашу проблему постоянно
1) Пожалуйста, добавьте multiDexEnabled true 2) если вы получаете ошибку компиляции, то проверьте уровень вашего приложения build.gradle. Одинаковые зависимости выполняются в разных версиях. 3) Удалите его, если вы найдете одинаковые зависимости.
android {compileSdkVersion 28 defaultConfig {
minSdkVersion 17 targetSdkVersion 28 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" multiDexEnabled true }
надеюсь, что он отлично работает :) Happy Coding
Используйте multiDexEnabled true, как показано ниже.
{ minSdkVersion 17 targetSdkVersion 28 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" multiDexEnabled true }
а также
implementation 'com.android.support:multidex:1.0.3'
это решение работало для меня.
Самый простой способ избежать ошибки сосать:
-Изменить библиотеку combilesdkversion так же, как и приложение compilesdkversion
-Измените библиотеку поддержкиLibrary версии так же, как ваш build.gradle (приложение)