У меня есть Android Studio Beta. Я создал новый проект с компиляцией моих старых модулей, но когда я попытался запустить приложение, оно не запустилось с сообщением:
Error:Execution failed for task ':app:transformDexArchiveWithExternalLibsDexMergerForDebug'.
com.android.builder.dexing.DexArchiveMergerException: невозможно объединить 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
}
Мой app 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
android
dex
android-studio-3.0
Parad0X
источник
источник
Ответы:
У меня была такая же проблема, когда я обновляю с
com.google.android.gms:play-services:11.2.2
доcom.google.android.gms:play-services:11.4.0
. Это решило это для меня:источник
multiDexEnabled true
не одинЯ перепробовал все вышеперечисленное и ни один из них не помогает. наконец, я нахожу эту работу для себя:
Приложение / build.gradle:
источник
Обратите внимание на предупреждения!
Иногда вам нужно только устранить предупреждения, и ошибка исчезнет автоматически. Смотрите ниже особый случай:
У меня были эти две зависимости в моем
build.gradle
файле уровня модуля :и студия предупредила ( в дополнение к проблеме слияния декс ):
Таким образом, я явно определил версию
com.android.support:support-v4
(см. Здесь для деталей), и обе проблемы (предупреждение и та, что касалась слияния декс) решены :Смотрите ниже комментарии для других подобных ситуаций.
источник
support:design:26.1.0
, и у меня еще не было этой зависимости. Мои другие библиотеки поддержки версии были 27.1.0. После добавленияsupport:design
зависимости от27.1.0
версии моя проблема была решена.В моем случае, к сожалению, ни решения Мишеля, ни Сурагча не сработали для меня.
Поэтому я решил эту проблему, выполнив следующие действия:
В Gradle: 3.0 компиляции конфигурации теперь устарели и должны быть заменены реализации или API . Более подробную информацию вы можете прочитать здесь. Вы можете прочитать официальные документы в Gradle Build Tool.
лучше использовать реализацию или API, а не компилировать
просто замените compile на реализацию , debugCompile с помощью debugImplementation , testCompile с помощью testImplementation и androidtestcompile с помощью androidTestImplementation
Например: вместо этого
использовать как это
После этого
Надеюсь, это поможет!
источник
.gradle
а не./gradle
Удалить
.gradle
каталог.Запустите приложение снова.
Ноты
.gradle
Каталог находится в корневой папке проекта. (Возможно, вам придется сначала показать скрытые файлы.)источник
Удаление,
.gradle
как предложено Сурагчем, было для меня недостаточно. Кроме того, я должен был выполнитьBuild > Clean Project
.Обратите внимание, что для того, чтобы увидеть
.gradle
, вам нужно переключиться на представление «Проект» в навигаторе в левом верхнем углу:источник
Я попробовал любое другое решение, но никто не работал для меня. В конце я решил эту проблему, используя ту же версию зависимости, отредактировав
build.gradle
. Я думаю, что эта проблема возникает при добавлении библиотеки в Gradle, которая использует другую версию поддержки или библиотеки Google.Добавьте следующий код в ваш файл Gradle сборки. Тогда
clean
иrebuild
проект.источник
если (1. Попробуй почистить и восстановить работу), то хорошо
иначе если (2. Попробуй убрать работу Gradle) тогда хорошо
else-> 3. Попробуй добавить в grade.properties
else-> 4. Добавьте
multiDexEnabled
true в свой build.gradleи добавить зависимость
Может быть, первый работает для вас и так далее, но это действительно зависит от характера вашей проблемы, например, для меня
Я получил ошибку, как только я добавил эту библиотеку
и позже я обнаружил, что я должен проверить это, и я должен добавить ту же версию библиотек поддержки. Поэтому я должен попробовать другую версию
и это решает проблему. Так что обратите на это внимание.
источник
В моем случае проблема была из-за библиотеки комнаты:
Меняя это на:
работал.
источник
Просто чтобы добавить к вышеупомянутым решениям:
Убедитесь, что у вас нет повторяющихся зависимостей, указывающих на разные их версии, в нескольких местах (или даже в одном и том же файле).
источник
Привет у меня такой же вопрос перепробовал почти все. Итак, наконец, я решил после 6-часовой долгой борьбы, отлаживая все построчно.
Google-services 3.0 Не поддерживает FireBase в Studio 3.0 с playServiceVersion: 11.6.0 или ниже.
Решение :
Я изменил службы Google на
И это поддерживает службы Firebase.
Надеюсь, кто-нибудь сэкономит свое время.
источник
включить
defaultConfig {multiDexEnabled true}
Если шаг 1 не работает, то
Перейдите в структуру проекта и узнайте внешнюю библиотеку, которая использует другую версию. Дважды щелкните по нему и удалите файл JAR. Закройте проект и снова откройте Android-студия перестроит проект. Проблема должна исчезнуть.
источник
Одна из возможностей: наличие одной и той же библиотеки, но с разными версиями в зависимостях .
У меня была эта проблема со следующими строками в файле Gradle:
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.google.code.gson:gson:2.8.2'
Библиотека gson была в моем каталоге libs, но с предыдущей версией. Я удалил
gson-2.3.1.jar
из каталога libs, и все вернулось в нормальное русло.источник
compile fileTree(include: ['*.jar'], dir: 'libs')
исправлено для меня тоже .. спасибо (у)Если эта ошибка появилась для вас после включения поддержки kotlin, и ни одно из других решений не работает, попробуйте изменить зависимость kotlin модулей приложения
build.gradle
на:Это работает для меня на Android Studio 3.0 Beta 6. Смотрите этот ответ для дальнейшего объяснения.
источник
С Android Studio 3.0 стабильная сборка У меня сработали следующие шаги:
источник
[НЕВОЗМОЖНО MERGE DEX РЕШЕНО] После нескольких часов переполнения стека я решил «ОШИБКА НЕОБХОДИМОЙ MERGE DEX»
Причина - Android обновил библиотеки поддержки до версии 27.1.0, поэтому вам нужно изменить все строки поддержки Android в файле Gradle на 27.1.0 с 26.1.0.
Убедитесь, что в разделе репозиториев есть раздел maven с конечной точкой https://maven.google.com . Например:
allprojects {repositories {jcenter () maven {url " https://maven.google.com "}}}
Причина: - Android не может обновить библиотеки поддержки в менеджере SDK, и теперь он использует maven.google.com для обновления, поэтому вы должны включить это, чтобы использовать библиотеки поддержки 27.1.0
После изменения версии: 1. Очистить проект 2. Восстановить проект
источник
добавить команды ниже:
источник
Установка сервисов Google play (последняя версия) + в том числе
В build.gradle проблема решена за меня, обязательно очистите и пересоберите проект!
источник
В моем случае это был gson-2.8.1.jar, который я добавил в папку libs проекта. Но ссылка была уже там SDK. Поэтому добавлять папку gson-2.8.1.jar в папку libs не обязательно.
Когда я взял его, проект gson-2.8.1.jar компилируется без этой ошибки.
Поэтому попробуйте пересмотреть папку libs и зависимости .
источник
Я согласен с Крисом-младшим. Если вы используете Firebase для встраивания своих объявлений AdMob (или даже если нет), аналитика play-services включает в себя рекламу play-services-ads, даже если вы не добавляете это в качестве зависимости. Google, очевидно, допустил ошибку при развертывании 11.4.0, так как аналитика включает в себя рекламу версии 10.0.1, а не 11.4.0 (подсказка мыши в граделе показывает это).
Я вручную добавил компиляцию "com.google.android.gms: play-services-ads: 11.4.0" вверху, которая работала, но только после того, как я отключил мгновенный запуск: http://stackoverflow.com/a/35169716/530047
Так что либо вернитесь к 10.0.1, либо добавьте рекламу и отключите Instant Run. Это то, что я нашел, если это поможет.
источник
Я столкнулся с той же проблемой и нашел реальную причину своего дела. Ранее я также попробовал все предыдущие ответы снова, но это не решило проблему. У меня есть два модуля в моем проекте приложения износа, и build.gradle следующим образом:
носить модуль build.gradle:
build.gradle общего модуля:
Перед обновлением до версии 3.x все «реализации» являются «компилируемыми».
Я запускаю gradlew с параметром --stacktrace, чтобы получить трассировку стека, вы можете просто щелкнуть по нему в окне консоли gradle, когда возникнет эта проблема. И обнаружил, что зависимость от пакета jar повторилась:
Класс SportSummary в пакете farmer-motion-1.0.jar, после прочтения официального руководства по миграции , изменил свой build.gradle следующим образом:
носить модуль build.gradle:
Общий модуль: build.gradle:
Теперь модуль износа будет зависеть от экспорта farmer-motion-1.0.jar общим модулем. Если не имеет зависимости от пакета банки во время выполнения , « реализация » зависимость пакета банки также может быть изменена на «compileOnly» .
источник
У меня тоже была проблема.
Я смог решить, изменив
compileSdkVersion
иtargetSdkVersion
до последней версии.источник
Для нашего проекта мы случайно добавили одну и ту же банку два раза с другим названием. Удаление одного из них решило проблему.
источник
libs
папке у меня было два jar-файла, один из которых является просто резервной копией другого, но с другим именем файла.Возможно, это не ваша проблема, но я получил эту ошибку, когда случайно включил две одинаковые (но с разными именами) библиотеки в разделе зависимостей проекта {}.
источник
Для меня это было обновление сообщений Firebase в app \ build.gradle:
в
источник
Одна из возможных основных причин: дублированные переходные зависимости, которые не были должным образом обработаны при импорте из Android Studio многомодульных проектов. Проверьте свой список и удалите их. Для меня исправление было буквально так:
источник
Я выясняю причину этой проблемы для моего проекта. Мне добавили одну зависимость дважды в build.gradle . Один раз, добавив зависимость, и еще раз, добавив зависимость jar:
скомпилировать 'org.achartengine: achartengine: 1.2.0'
...
файлы реализации ('../ achartengine-1.2.0.jar')
после удаления первой строки проблема решена.
источник
Если топовые ответы не сработали, ваша проблема может заключаться в том, что у вас несколько зависимостей, которые зависят от одной и той же библиотеки.
Вот несколько советов по отладке. В этом примере кода
com.google.code.findbugs:jsr305:3.0.0
это библиотека-нарушитель.Всегда очищайте и перестраивайте каждый раз, когда вносите изменения, чтобы проверить свое решение!
Построить с
--stacktrace
флагом для более подробной информации. Он будет жаловаться на класс, Google этот класс, чтобы найти библиотеку. Вот как вы можете настроить Android-студию так, чтобы она всегда работала с--stacktrace
флагом .Посмотрите на Gradle Console в Android Studio
View > Tool Windows > Gradle Console
после сборкиПроверьте наличие повторяющихся зависимостей, запустив
./gradlew -q app:dependencies
. Вы можете запускать его каждый раз, когда изменяете свой build.gradle.В build.gradle,
В build.gradle,
В build.gradle,
Если некоторые из ваших зависимостей находятся в jar-файлах, откройте jar-файлы и посмотрите, есть ли конфликтующие имена классов. Если это так, вам, вероятно, придется пересобрать банки с новыми именами классов или изучить затенение .
Еще немного справочного чтения:
источник
источник
В моем случае библиотека создает эту проблему, библиотека была успешно добавлена в проект, но когда я запускаю свое приложение, она показывает мне эту ошибку. Так что, если это случится и с вами, вы можете перейти на github и проверить проблемы или поднять новую проблему. Если вы не нашли решения относительно библиотеки, я предлагаю вам заменить ее.
источник