Ошибка Dex на Android Studio 3.0 Beta4

Error:java.lang.RuntimeException: java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException: Unable to merge dex
Error:java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException: Unable to merge dex
Error:com.android.builder.dexing.DexArchiveMergerException: Unable to merge dex
Error:com.android.dex.DexException: Multiple dex files define Lcom/google/zxing/integration/android/IntentResult;

16 ответов

У меня та же проблема с Android Studio 3.0 beta 4. Я нашел решение.

1. Из Build меню нажмите Clean Project кнопка.

Чистый Проект

2. После завершения задания нажмите Rebuild Project кнопка от Build меню.

Для Android Studio 3.0 я добавил следующее:

multiDexEnabled true

И это сработало!

пример

android {
    compileSdkVersion 25
    buildToolsVersion '26.0.2'
    defaultConfig {
        applicationId "com.xx.xxx"
        minSdkVersion 15
        targetSdkVersion 24
        versionCode 9
        versionName "1.0"
        multiDexEnabled true //Add this
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            shrinkResources true
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
}

Поэтому я решил эту проблему, выполнив следующие действия:

  • Удалить ./gradle папка внутри вашего проекта
  • Удалите все папки сборки и кеш-память. Я выполнил следующую команду:

Как?

 cd ~/[your project root folder] && find . -name build -exec rm -rf {} \; && rm -rf $HOME/.gradle/caches/

Предполагая, что ваши файлы конфигурации gradle находятся в $HOME/.gradle папка.

  • Внутри Android Studio, пошел в File > Invalidate caches / Restart... и сделал недействительными кэши и перезапустил его.

Вы должны быть в состоянии найти причину этой ошибки, проверив ваши зависимости с помощью gradle и найдя дубликаты: ./gradlew -q app:dependencies

В моем случае во время сборки произошла следующая ошибка:

Duplicate zip entry [httpcore-4.4.1.jar

и это было решено, сделав это в моем build.gradle:

implementation ('me.dlkanth:stetho-volley:1.0') {
    exclude group: 'org.apache.httpcomponents'
}

Если ваш minSdkVersion 21 или выше

   android {
        defaultConfig {
           multiDexEnabled true
        }
    }

если ваш minSdkVersion равен 20 или ниже

1) вы должны добавить следующую библиотеку в зависимости

dependencies {
  compile 'com.android.support:multidex:1.0.1'
}

2) Создайте класс Java, затем расширьте его из приложения и переопределите метод attachBaseContext.

 public class MyApplication extends Application {
    @Override
    protected void attachBaseContext(Context base) {
        super.attachBaseContext(base);
        MultiDex.install(this);
    }
}

3) Упомяните созданный класс внутри манифеста в теге приложения.

    <application
        android:name=".MyApplication"
.
.
.
    </application>

Проверяйте свои зависимости на наличие последней версии, обычно это не соответствует версии какой-либо из ваших зависимостей.

1.Build> Clean Project 2. Перестройте свой проект

Проверьте подробный журнал на наличие зависимости, вызывающей проблему слияния, и обновите ее. Повторите то же самое для каждой зависимости.

Я столкнулся с той же проблемой в Android Studio 3.0.1, я перепробовал все возможные случаи, но у меня ничего не получалось, как указано выше, в конце концов я решил ее

Solution1:

  • Закрыть Android Studio
  • удалять .gradle папка расположена в C:\Users\YourComputerName\.gradle не из приложения.gradle
  • Перезапустите андроид студию

Он скачает все необходимые банки и добавит в ваш путь сборки

Solution2:

  • Удалить дубликат jar из папки libs в app/libs
  • Снова запустите приложение

Потому что, если есть дубликат файла JAR, который уже определен в build.gradle файл это вызывает проблему.

Это решило проблему для меня. Это может помочь другим..

Эта ошибка может иметь несколько причин. Никакая чистка и перестройка или что-либо подобное не сделали работу для меня.

Для меня проблемой была зависимость:

compile 'org.jetbrains:annotations-java5:15.0'

Я удалил его, и все работало нормально.

Измените "compile" на "compileOnly", это то, что сработало для меня.

Я использую Android Studio 3.0.1, сборка #AI-171.4443003, построена 9 ноября 2017 г.

Я удаляю файл jar из папки libs. И это прекрасно работает для меня

В моем случае виновником была библиотека SendGrid, добавила это, и это было исправлено:

compile 'com.github.danysantiago:sendgrid-android:1',{
    exclude group: 'org.apache.httpcomponents', module: 'httpclient'
}

Я использую выпуск Studio 3.0.0. В моем случае было единственное решение: я удалил старые JAR-файлы из папки "libs" в моем проекте: это был пакет "ksoap2" с зависимостями. Пакеты, полученные с помощью gradle, обычно не конфликтуют друг с другом, по крайней мере, если вы используете самые популярные из них. Но старый JAR в папке libs может разрушить вашу сборку, если он включает все собственные зависимости.

Я использую Android Studio 3.0.1 и столкнулся с той же проблемой. Если ответ других не работает, попробуйте это:

Сервис -> Android -> Синхронизировать проект с файлами Gradle

У меня сработало Sync Project с Gradle Files

Я пробовал другие комментарии от удаления Gradle и Bla Bla Bla, но добавив multiDexEnabled true Решая мою проблему, я выясняю, что мой apk достиг более 64K метода.

Ссылка: https://developer.android.com/studio/build/multidex.html)

Иногда это может происходить из-за того, что одна и та же библиотека (jar-файл) присутствует два раза или ваш проект достиг ограничения в 64 КБ.

Решение: 1) Удалите привязку данных, если ваш проект использует это 2) Удалите ту же библиотеку типов из папки lib или удалите файл.gradle из c//user//your_pc//. Gradle 3) примените это в вашем build.gradle

android {
    defaultConfig {
       multiDexEnabled true
    }
}

Решил это, удалив библиотеку Android Data Binding:

dataBinding {
    enabled = true
}
Другие вопросы по тегам