Студия Android получала ошибку сборки при выполнении сборки со следующим:
Ошибка: не удалось выполнить задачу ': app: transformDexArchiveWithExternalLibsDexMergerForDebug'. java.lang.RuntimeException: java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException: невозможно объединить dex "
Мое приложение: файл build.gradle:
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 и решил
android
android-studio-3.0
build-error
Ангурадж
источник
источник
Ответы:
Для проекта на основе Кордовы запустите
cordova clean android
перед сборкой еще раз, как предложил @mkimmet .источник
Эта ошибка возникает, когда вы добавляете внешнюю библиотеку, которая может быть несовместима с вашим
compileSdkVersion
.Будьте осторожны, когда добавляете
external library
.Я потратил 2 дня на эту проблему, и, наконец, она была решена с помощью следующих шагов.
Убедитесь, что все ваши вспомогательные библиотеки такие же, как
compileSdkVersion
иbuild.gradle(Module:app)
в моем случае26
.В вашей категории defaultConfig введите multiDexEnabled true . Это важная часть.
Перейти к файлу | Настройки | Сборка, выполнение, развертывание | Instant Run и попробуйте включить / отключить Instant Run для горячей замены ... и нажмите ОК
Sync
Ваш проект.Наконец, перейдите в раздел "Сборка |" нажмите на Rebuild Project .
Примечание. Rebuild Project сначала очищает, а затем создает проект.
источник
Попробуйте добавить это в gradle
android { defaultConfig { multiDexEnabled true } }
источник
Разрешение:
Обратитесь к этой ссылке : Поскольку существуют различные варианты отключения предупреждения в зависимости от minSdkVersion, оно установлено ниже 20 :
android { defaultConfig { ... minSdkVersion 15 targetSdkVersion 26 multiDexEnabled true } ... } dependencies { compile 'com.android.support:multidex:1.0.3' }
Если у вас minSdkVersion больше 20 в вашем наборе build.gradle, используйте следующее, чтобы отключить предупреждение:
android { defaultConfig { ... minSdkVersion 21 targetSdkVersion 26 multiDexEnabled true } ... }
Обновите зависимости следующим образом:
dependencies { implementation 'com.android.support:multidex:1.0.3' }
Опять же, единственная разница - это ключевые слова в зависимостях:
minSdkVersion ниже 20: используйте компиляцию
minSdkVersion выше 20: использовать реализацию
источник
Просто попробуйте выполнить «Сборка -> Чистый проект». Это решило проблему для меня.
источник
Для меня добавление
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 уровня приложения решил проблему
источник
Перейдите в файл уровня вашего модуля
build.gradle
и добавьте в код следующие строкиdefaultConfig { ... minSdkVersion 15 targetSdkVersion 28 multiDexEnabled true } ... } dependencies { implementation 'com.android.support:multidex:1.0.3' }
Это легко решило проблему. Проверить эту документацию
источник
Используйте 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'
это решение сработало для меня.
источник
Я пробовал много решений, упомянутых выше, включая multiDexEnabled true, но ни одно из них не помогло мне.
Вот решение, которое сработало для меня - скопируйте этот код в файл app \ build.gradle
configurations.all { resolutionStrategy.eachDependency { DependencyResolveDetails details -> def requested = details.requested if (requested.group == 'com.android.support' && requested.name != 'multidex') { details.useVersion "${rootProject.ext.supportLibVersion}" } } }
Обязательно запустите gradlew clean перед запуском кода
источник
То же самое случилось со мной, я понял, что я был в процессе обновления до 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 }
источник
Также убедитесь, что ваше приложение является подклассом MultiDexApplication.
import android.support.multidex.MultiDexApplication class App : MultiDexApplication()
или, если класс Application не является подклассом, добавьте в AndroidManifest.xml
<application android:name="android.support.multidex.MultiDexApplication"
источник
Вы находитесь между 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 clean, rebuild, make, попытался убедиться в отсутствии конфликтов в импортированных библиотеках (удалил все транзитивные зависимости) и сделал все обновления. Все еще:
Оказалось, что сборка не понравилась: implementation 'org.slf4j: slf4j-android: 1.7.21'
источник
Когда версия Android Studio - 3.0.1, Gradle Version - 4.1, а Android PluginVersion - 3.0.0, она столкнется с этой проблемой. Затем я понижаю версию Gradle до 3.3, Android Android - ноль, такой проблемы нет.
источник
У меня это было, когда запрошенная версия SDK не соответствовала зависимостям. Вы можете щелкнуть выделенную строку и исправить это, щелкнув красную лампочку. Не нужно искать актуальную версию, просто позвольте IDE выяснить это за вас. И добавьте репозиторий google в конфигурацию maven.
источник
Я получал ту же ошибку и в моем случае ошибка была устранена, когда я исправил ошибку сборки, которая была связана с другим вариантом сборки, чем тот, который я строил в настоящее время.
Я создавал вариант сборки, на который я смотрел, отлично, без ошибок, но попытка отладки вызвала
app:transformDexArchiveWithExternalLibsDexMergerForDebug
ошибку. Как только я переключился на сборку другого варианта сборки, я поймал свою ошибку в процессе сборки и исправил ее. Похоже, это решило моюapp:transformDexArchiveWithExternalLibsDexMergerForDebug
проблему для всех вариантов сборки.Обратите внимание, что эта ошибка была не в указанном внешнем модуле, а в отдельном исходном наборе варианта сборки, который ссылался на внешний модуль. Надеюсь, это поможет кому-то, кто может видеть то же дело, что и я!
источник
Я сделал и исправил эту проблему, просто выполнив эту работу в своем коде
Открыть -> build.gradle Изменить значение с
compile 'com.google.code.gson:gson:2.6.1'
к
compile 'com.google.code.gson:gson:2.8.2'
источник
Чтобы удалить эту проблему с Dex, просто реализуйте одну зависимость. Эта проблема возникает, когда мы используем несколько разных служб с одного и того же сервера. Предположим, мы используем рекламу и Firestore в проекте, и у обоих есть репозиторий maven. поэтому нам нужно вызывать разные данные из репозитория, который нам нужно реализовать. Новое обновление Зависимость: -
implementation 'com.android.support:multidex:1.0.3'
Я уверен, что это решит вашу проблему навсегда
источник
android {compileSdkVersion 28 defaultConfig {
minSdkVersion 17 targetSdkVersion 28 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" multiDexEnabled true }
источник
Самый простой способ избежать такой ошибки:
-Измените библиотеку combilesdkversion так же, как и ваше приложение compilesdkversion
-Изменить версию библиотеки supportLibrary, как и у вашего build.gradle (приложение)
источник
Это то, что у меня работает. чистая подготовка и запуск.
cordova clean android; ionic cordova prepare andriod; ionic cordova run andriod;
Надеюсь, поможет.
источник
У меня тоже была аналогичная ошибка.
Основная причина этой проблемы - не включен multiDex. Таким образом , в / Android / приложение / build.gradle проекта , включить multiDex
Для получения дополнительной информации обратитесь к документации: https://developer.android.com/studio/build/multidex#mdex-gradle.
источник
Вы всегда можете вернуться к DX сейчас с помощью этой настройки в
gradle.properties
файле вашего проекта :android.enableD8=false
Для получения дополнительной информации см. Https://android-developers.googleblog.com/2018/04/android-studio-switching-to-d8-dexer.html.
источник