web-dev-qa-db-fra.com

com.Android.builder.dexing.DexArchiveMergerException: impossible de fusionner dex - Android Studio 3.0 stable

J'ai fait:

  • Dans "Paramètres" -> "SDK Android" -> "Outils du SDK", les services Google Play sont vérifiés et installés v.46.
  • Dossier supprimé /.gradle
  • "Projet propre"
  • "Projet de reconstruction

L'erreur est:

Error:Execution failed for task ':app:transformDexArchiveWithExternalLibsDexMergerForDebug'.
> Java.lang.RuntimeException: Java.lang.RuntimeException: com.Android.builder.dexing.DexArchiveMergerException: Unable to merge dex

Projet build.gradle

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.Android.tools.build:gradle:3.0.0'

        classpath 'com.google.gms:google-services:3.1.0'
    }
}

allprojects {
    repositories {
        jcenter()
        google()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

App build.gradle

apply plugin: 'com.Android.application'

Android {
    compileSdkVersion 26
    buildToolsVersion '26.0.2'
    defaultConfig {
        applicationId "com.asanquran.mnaum.quranasaanurdutarjuma"
        minSdkVersion 15
        targetSdkVersion 26
        versionCode 3
        versionName "1.3"
        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.+'


    compile 'com.Android.support.constraint:constraint-layout:1.0.2'
    compile 'com.google.Android.gms:play-services-ads:11.4.2'
    compile 'com.github.barteksc:Android-pdf-viewer:2.3.0'
    compile 'org.Apache.commons:commons-io:1.3.2'
    compile 'com.google.firebase:firebase-ads:11.4.2'
    compile 'com.google.firebase:firebase-messaging:11.4.2'
    compile 'com.google.firebase:firebase-storage:11.4.2'
    apply plugin: 'com.google.gms.google-services'
    testCompile 'junit:junit:4.12'
}
apply plugin: 'com.google.gms.google-services'

S'il vous plaît, aidez-moi, que dois-je faire maintenant

S'il vous plaît ne marquez pas cela en double, j'ai essayé presque toutes les solutions

J'ai eu le même problème, ajouter sourceCompatibility et targetCompatibility à mon build.gradle m'a aidé à:

Android {
    compileOptions {
        sourceCompatibility 1.8
        targetCompatibility 1.8
    }
}
9
Philipp Cherubim

Je sais qu'il est trop tard pour mettre à jour. J'ai eu le même problème sur mon projet.

Raisons possibles

  1. Si vous avez ajouté un module dans votre projet et que ce module possède des bibliothèques de support ou des bibliothèques de services Google Play dont la version est différente de celle de votre application.
  2. Si vous utilisez une bibliothèque open source dans votre projet et que cette bibliothèque utilise en interne l'une des bibliothèques que vous utilisez également dans votre projet.

Solutions

  • Si c'est le cas 1 de votre projet, mettez à jour les versions de votre bibliothèque et procédez de la même manière dans votre projet et votre module.
  • Vérifiez l’arborescence de vos dépendances à l’aide de la commande ci-dessous et voyez s’il existe une incompatibilité dans les dépendances.

    ./gradlew :app:dependencies
    
  • Vous pouvez exclure un module particulier de toutes les dépendances, comme ci-dessous.

    implementation('com.google.Android.ads.consent:consent-library:1.0.4') {
      transitive = true
      exclude group: "com.Android.support"
    } 
    
  • Dans l'exemple ci-dessus, il exclura le groupecom.Android.supportgroup des dépendancesconsent-library

  • Vous pouvez également supprimer un module particulier.

     compile ('junit:junit:4.12'){
      exclude group: 'org.hamcrest', module:'hamcrest-core'
      }
    
  • Dans l'exemple ci-dessus, il exclurahamcrest-coredeorg.hamcrest.

6
patel vatsal

J'ai fait comme l'indice dans l'image, sauf changé 11.0.4 à 11.8.0

compile 'com.google.Android.gms:play-services-base:11.8.0'
compile 'com.google.Android.gms:play-services:11.8.0'

Unable to merge dex

3
mohammed alshaarawi

Cela me convenait et aucune des réponses que j'ai trouvées ne fonctionnait. Enfin trouvé une solution - la partager ici même si je ne peux pas vous dire de façon définitive comment trouver quelle est la dépendance en cause - vous devrez peut-être faire quelques essais et erreurs. 

Dans mon build.gradle (Module: app), j'ai ajouté cette clause exclude:

    compile ('org.Eclipse.paho:org.Eclipse.paho.Android.service:1.0.2')
        { exclude module: 'support-v4' }
2
veggiebenz

dans mon cas, je change tout com.Android.support: libraries en 27.1.0 et ça marche 

0
Marriage