51 votes

Erreur de Dex sur 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;

54voto

Y.E.S. Points 641

J'ai le même problème avec Android Studio 3.0 beta 4. J'ai trouvé une solution.

1. De la Build appuyez sur le bouton Clean Project bouton.

Clean Project

2. Une fois la tâche terminée, appuyez sur la touche Rebuild Project du bouton Build menu.

enter image description here

28voto

Prodigy Points 498

Pour Android Studio 3.0, ce que j'ai fait est d'ajouter ceci à mon gradle :

multiDexEnabled true

Et ça a marché !

Exemple

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'
        }
    }
}

19voto

ADev Points 1234

J'ai donc résolu ce problème en procédant comme suit :

  • Supprimer le ./gradle dans votre projet
  • Supprimer tous les les dossiers de construction et le cache gradle . J'ai exécuté la commande suivante :

Comment ?

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

En supposant que votre fichiers de configuration gradle sont dans le $HOME/.gradle dossier.

  • Dans Android Studio, allez dans File > Invalidate caches / Restart... et a invalidé les caches et l'a redémarré.

9voto

IgorGanapolsky Points 14540

Vous devriez pouvoir trouver la cause de cette erreur en inspectant vos dépendances avec gradle et en recherchant les doublons comme celui-ci : ./gradlew -q app:dependencies

Dans mon cas, l'erreur suivante s'est produite au moment de la construction :

Duplicate zip entry [httpcore-4.4.1.jar

et le problème a été résolu en faisant ceci dans mon build.gradle :

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

7voto

Opriday Points 844

Si votre minSdkVersion est égale ou supérieure à 21

   android {
        defaultConfig {
           multiDexEnabled true
        }
    }

si votre minSdkVersion est de 20 ou moins

1) vous devez ajouter la bibliothèque suivante dans les dépendances

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

2) Créez une classe java puis étendez-la à partir d'Application et surchargez la méthode attachBaseContext.

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

3) Mentionnez la classe créée dans le manifeste de la balise d'application.

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X