Impossible de fusionner les dex

J'ai Android Studio Beta. J'ai créé un nouveau projet avec la compilation de mes anciens modules mais lorsque j'ai essayé de lancer l'application, elle ne s'est pas lancée avec le message :

Error:Execution failed for task ':app:transformDexArchiveWithExternalLibsDexMergerForDebug'.

com.android.builder.dexing.DexArchiveMergerException : Unable to merge dex

Mais je ne sais pas comment résoudre cette erreur. J'ai cherché sur Google pendant des heures, mais sans succès.

Mon projet 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
}

Mon application 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')

}

Et mon module 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')

}

Mon deuxième module :

     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_____

Lorsque je n'ai pas importé le deuxième module (parser), l'application ne s'est pas plantée sur le dex, mais lorsque le module n'a pas été importé, l'application n'a pas fonctionné. :D :D

  1. Supprimez le répertoire .gradle.

  2. Exécutez à nouveau votre application.

Notes

  • Le répertoire .gradle se trouve dans le dossier racine de votre projet. (Il se peut que vous deviez d'abord afficher les fichiers cachés).
  • Je dois faire cela à chaque fois que je mets à jour un module de dépendance en utilisant Android 3.0. (Les versions plus récentes d'Android Studio 3 semblent avoir résolu le problème).
Commentaires (2)

La suppression de .gradle comme suggéré par Suragch n'a pas été suffisante pour moi. De plus, j'ai dû effectuer un Build > Clean Project.

Notez que, pour voir le fichier .gradle, vous devez basculer vers la vue "Project&quot ; dans le navigateur en haut à gauche :

[!Switch to project view][1]][1]

[1] : https://i.stack.imgur.com/tJ8yA.png

Commentaires (0)

Malheureusement, ni les solutions de Michel ni celles de Suragch n'ont fonctionné pour moi.

Ce que j'ai finalement dû faire, c'est simplement revenir à la version 10.0.1 de ma com.google.firebase:firebase-database, puisque la 11.4.0 provoquait un avertissement d'incohérence de dépendance dans mon fichier app gradle.

Commentaires (1)