У меня есть Android Studio Beta. Я создал новый проект с компиляцией моих старых модулей, но когда я попытался запустить приложение, оно не запустилось с сообщением:
Error:Execution failed for task ':app:transformDexArchiveWithExternalLibsDexMergerForDebug'.
com.android.builder.dexing.DexArchiveMergerException: Unable to merge dex
Но я не знаю, как решить эту ошибку. Я гуглил об этом несколько часов, но безуспешно.
Мой проект gradle:
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
jcenter()
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.0.0-beta6'
classpath "io.realm:realm-gradle-plugin:3.7.1"
classpath 'com.google.gms:google-services:3.1.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
google()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
Мое приложение gradle:
apply plugin: 'com.android.application'
android {
compileSdkVersion 26
buildToolsVersion "26.0.1"
defaultConfig {
applicationId "parad0x.sk.onlyforyou"
minSdkVersion 21
targetSdkVersion 26
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
multiDexEnabled true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
debug {
}
}
compileOptions {
targetCompatibility 1.7
sourceCompatibility 1.7
}
packagingOptions {
exclude 'META-INF/LICENSE'
exclude 'META-INF/NOTICE'
}
lintOptions {
checkReleaseBuilds false
}
productFlavors {
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
//noinspection GradleCompatible
compile 'com.android.support:appcompat-v7:26.0.0-alpha1'
compile project(path: ':loginregisterview')
}
И мой модуль gradle:
apply plugin: 'com.android.library'
apply plugin: 'realm-android'
android {
compileSdkVersion 26
buildToolsVersion "26.0.1"
defaultConfig {
minSdkVersion 19
targetSdkVersion 26
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:appcompat-v7:26.0.2'
compile 'com.android.support:support-v4:26.1.0'
compile 'com.github.bumptech.glide:glide:4.0.0'
testCompile 'junit:junit:4.12'
compile project(path: ':parser')
}
Мой второй модуль:
apply plugin: 'com.android.library'
apply plugin: 'realm-android'
android {
compileSdkVersion 26
buildToolsVersion "26.0.1"
defaultConfig {
minSdkVersion 14
targetSdkVersion 23
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
realm {
syncEnabled = true
}
useLibrary 'org.apache.http.legacy'
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
productFlavors {
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile 'junit:junit:4.12'
// compile 'com.android.support:appcompat-v7:23.1.0'
// compile 'com.fasterxml.jackson.core:jackson-core:2.9.0'
// compile 'com.fasterxml.jackson.core:jackson-annotations:2.9.0'
// compile 'com.fasterxml.jackson.core:jackson-databind:2.9.0'
compile 'com.google.code.gson:gson:2.6.2'
}
____finding_____
Когда я не импортировал второй модуль (парсер), приложение не падало на dex, но когда модуль не был импортирован, приложение не работало. :D :D :D
Я попробовал все вышеперечисленное и ни один из них не помогает. наконец, я нахожу эту работу для меня:
приложение/сборка.Gradle в:
android {
defaultConfig {
multiDexEnabled true
}
}
У меня была такая же проблема, когда я обновление из ком.Гугл.андроид.ГМС:играть-услуг:11.2.2 " в " ком.Гугл.андроид.ГМС:играть-услуг:11.4.0`. Это решено для меня:
Иногда нужно только устранить предупреждения и ошибка будет автоматически исчезла. См. ниже особый случай:
Я этих двух зависимостей в мой модуль-уровня сборки.файл Gradle`:
implementation 'com.android.support:appcompat-v7:27.0.2'
implementation 'com.android.support:recyclerview-v7:27.0.2'
и студии предупредил (в дополнение к проблеме слияния Декс):
Все
ком.андроид.библиотеки поддержки необходимо использовать ту же самую версию спецификации (смешение версий может привести к аварии во время выполнения). Найден версий 27.0.2
,21.0.3
. Примеры включаютком.андроид.поддержка:мультипликация-вектор-катры:27.0.2
иCOM.андроид.поддержка:поддержка-В4:21.0.3
Поэтому я четко определил версию ком.андроид.поддержка:поддержка-В4
(см. здесь для деталей) и обе проблемы (предупреждение и связанные с Декс слияние) решил:
implementation 'com.android.support:support-v4:27.0.2' // Added this line (according to above warning message)
implementation 'com.android.support:appcompat-v7:27.0.2'
implementation 'com.android.support:recyclerview-v7:27.0.2'
<суп>см. ниже комментарии к другим аналогичным ситуациям.</SUP и ГТ;
В моем случае, к сожалению, ни Мишель's, ни Suragch'ы решений работал для меня.
Так я решил эту проблему, выполнив следующие действия:
В Gradle в:3.0 в компиляции конфигурация устарела и должна быть заменена реализации или АПИ. Для получения более подробной информации вы можете читать здесь Вы можете прочитать официальные документы по Gradle в построить инструмент
компиляция конфигурации все еще существует, но не должна быть использована как оно не принесет гарантии, что API и реализации конфигурации обеспечивают.
это'ы лучше использовать реализации или АПИ а компиляции
просто заменить компиляции с реализация, debugCompile с debugImplementation, testCompile с testImplementation и androidtestcompile с androidTestImplementation
К примеру: вместо этого
compile 'com.android.support:appcompat-v7:26.0.2'
compile 'com.android.support:support-v4:26.1.0'
compile 'com.github.bumptech.glide:glide:4.0.0'
использовать такой
implementation 'com.android.support:appcompat-v7:26.0.2'
implementation 'com.android.support:support-v4:26.1.0'
implementation 'com.github.bumptech.glide:glide:4.0.0'
После этого
Надеюсь, что это помогает !
Удалите каталог .gradle
.
Запустите ваше приложение снова.
Примечания
.gradle
находится в корневой папке вашего проекта. (Возможно, вам придется сначала показать скрытые файлы).Удаление .gradle
, как предложил Suragch, было для меня недостаточным. Дополнительно мне пришлось выполнить Build > Clean Project
.
Обратите внимание, что для того, чтобы увидеть .gradle
, вам нужно переключиться на вид "Проект" в навигаторе слева вверху:
Я попробовал все другие решения, но никто не работал для меня. В конце концов, я решил, используя же зависимость версий путем редактирования построить.Gradle в
. Я думаю, что эта проблема ситуация имеет место при добавлении библиотеки в Gradle, который использует различные зависимости версии поддержка или библиотеками Google.
Добавьте следующий код в сборку файл Gradle. Затем "чистые" и "перестроить" проекта.
П. С.: Это было старое решение для меня, так что вы должны использовать обновленную версию В следующие библиотеки.
configurations.all {
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
def requested = details.requested
if (requested.group == 'com.android.support') {
if (!requested.name.startsWith("multidex")) {
details.useVersion '26.1.0'
}
} else if (requested.group == "com.google.android.gms") {
details.useVersion '11.8.0'
} else if (requested.group == "com.google.firebase") {
details.useVersion '11.8.0'
}
}
}
если(1. Попробовать, чтобы очистить и перестроить работу ) тогда хорошо
остальное, если (2. Попробуйте удалить Gradle в работе ), то хорошо
остальное-> 3. Попробуйте добавить в класс.свойства
android.enableD8 = false
остальное-> 4. Добавить multiDexEnabled` верен своему строить.Gradle в
android {
compileSdkVersion 26
defaultConfig {
...
minSdkVersion 15
targetSdkVersion 26
multiDexEnabled true
...
}
}
и добавить зависимость
dependencies {
compile 'com.android.support:multidex:1.0.1'}
Возможно, первый работает для U и так далее, но это действительно зависит от характера вашей проблемы для меня например
У меня когда-то ошибку, я добавил эту библиотеку
implementation 'com.jjoe64:graphview:4.2.2'
а позже я обнаружил, что я должен проверить, что и я должен добавить одну и ту же версию библиотеки поддержки. Так что я должен попробовать другой вариант
compile 'com.jjoe64:graphview:4.2.1'
и это решает проблему. Поэтому обращайте внимание на это.
Просто чтобы добавить к выше решений:
Убедитесь, что вы Дон'т иметь повторяющихся зависимостей, указывающие на различные версии их, в нескольких местах (или даже в один и тот же файл).
Привет у меня тот же вопрос, пробовала почти все. Итак, наконец я решил после 6 часовой борьбы отладки все построчно.
classpath 'com.google.gms:google-services:3.0.0'
Гугл-сервисы 3.0 Не'т опорного пункта поддержки со студией 3.0 с playServiceVersion: 11.6.0 или меньше.
implementation "com.google.firebase:firebase-messaging:$rootProject.ext.playServiceVersion"
implementation "com.google.firebase:firebase-core:$rootProject.ext.playServiceVersion"
implementation "com.firebase:firebase-jobdispatcher-with-gcm-dep:$rootProject.ext.jobdispatcherVersion"
Решение :
Я изменить сервисы Google к
classpath 'com.google.gms:google-services:3.1.1'
И услуг ИТ-поддержки военнослужащих.
Надеюсь кому-то сэкономить свое время.
defaultConfig { multiDexEnabled правда }
Перейти к структуре проекта и узнайте внешних библиотек, которые использует другую версию. Дважды щелкните по нему и удалить файл jar. Закрыть проект и снова откройте Android Studio будет перестроить проект. Проблема должна исчезнуть.
Если эта ошибка появилась после включая поддержку Котлин, и ни один из других решений, попробуйте изменить зависимость Котлин модуля приложение'ы построить.Gradle в
с:
implementation ("org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version") {
exclude group: 'org.jetbrains', module: 'annotations'
}
Это работает для меня на Android-Студио 3.0 бета 6. Видеть это отвечать за дальнейшее объяснение.
Одна из возможностей-это: наличие одной и той же библиотеки, но с разными версиями в зависимости.
Я имел эту проблему с помощью следующих строк в файл Gradle:
компиляции 'сом.Гугл.код.дсын:дсын:2.8.2'
Библиотека дсын был в мою папку libs, но с предыдущей версией. Я удалил `gson-2.3.1.jar из библиотеки каталогов и все возвращается к норме.
[ НЕ УДАЕТСЯ СЛИТЬ ДЕКС РЕШЕНА ] После часа стек переполнен Я решила, что " не удается слить Декс ошибке "
Причина - Андроид обновил его библиотеки поддержки v27.1.0, так что вы должны изменить все линии поддержки Android в файл Gradle для 27.1.0 от 26.1.0
allprojects { репозитории { jcenter() Мэйвен { URL-адрес "и https://maven.google.com" } } }
Причина :- Android не может обновить поддержку библиотек в SDK Manager и теперь он использует maven.google.com для обновления , так что вы должны включать этот контент, чтобы использовать 27.1.0 поддержки библиотек
После Изменения Версии:
С Android студия 3.0 стабильная сборка ниже шаги работал для меня:
Установка сервисов Google играть (последняя версия) + в том числе
android {
defaultConfig {
multiDexEnabled true
}
}
в build.градля решена проблема для меня, убедитесь, чтобы очистить и перестроить проект!
Я согласен с Крис-младший, Если вы используете опорного пункта для размещения вашего AdMob объявления (или даже если вы не) спектакль-услуги-аналитика включает в себя игру-услуги-объявления, даже если вы не'т добавить, что в качестве зависимостей. Гугл, очевидно, ошибся в своих 11.4.0 внедрения в качестве аналитика, включая версии 10.0.1 рекламы, не 11.4.0 (мышкой за подсказку в Gradle в показывает этого).
Я вручную добавил сборка 'сом.Гугл.андроид.ГМС:играть-сервисы-объявления:11.4.0' на вершине которой работала, но только после того, как я мгновенно отключено: https://stackoverflow.com/a/35169716/530047
Так что его либо регрессировать до 10.0.1 или добавить объявления и отключить мгновенный запуск. Что's то, что я нашел, если это помогает любому.