web-dev-qa-db-fra.com

Android Studio: Erreur: L'exécution a échoué pour la tâche ': app: dexDebug'

J'utilise Android Studio pour la première fois et j'ai eu l'erreur suivante après l'importation du projet (auparavant, c'était un projet Eclipse dans lequel j'avais également des problèmes.)

Voici les informations données:

Error:Execution failed for task ':app:dexDebug'.
> com.Android.ide.common.internal.LoggedErrorException: Failed to run command:
    /home/crash-id/Development/SDK/adt-bundle-linux-x86_64-20140702/sdk/build-tools/21.1.2/dx --dex --no-optimize --output /home/crash-id/AndroidstudioProjects/LocalSin/app/build/intermediates/dex/debug --input-list=/home/crash-id/AndroidstudioProjects/LocalSin/app/build/intermediates/tmp/dex/debug/inputList.txt
  Error Code:
    2
  Output:
    UNEXPECTED TOP-LEVEL EXCEPTION:
    com.Android.dex.DexException: Multiple dex files define Lcom/google/ads/AdRequest$ErrorCode;
        at com.Android.dx.merge.DexMerger.readSortableTypes(DexMerger.Java:596)
        at com.Android.dx.merge.DexMerger.getSortedTypes(DexMerger.Java:554)
        at com.Android.dx.merge.DexMerger.mergeClassDefs(DexMerger.Java:535)
        at com.Android.dx.merge.DexMerger.mergeDexes(DexMerger.Java:171)
        at com.Android.dx.merge.DexMerger.merge(DexMerger.Java:189)
        at com.Android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.Java:454)
        at com.Android.dx.command.dexer.Main.runMonoDex(Main.Java:303)
        at com.Android.dx.command.dexer.Main.run(Main.Java:246)
        at com.Android.dx.command.dexer.Main.main(Main.Java:215)
        at com.Android.dx.command.Main.main(Main.Java:106)

:app:dexDebug
UNEXPECTED TOP-LEVEL EXCEPTION:
com.Android.dex.DexException: Multiple dex files define Lcom/google/ads/AdRequest$ErrorCode;
    at com.Android.dx.merge.DexMerger.readSortableTypes(DexMerger.Java:596)
    at com.Android.dx.merge.DexMerger.getSortedTypes(DexMerger.Java:554)
    at com.Android.dx.merge.DexMerger.mergeClassDefs(DexMerger.Java:535)
    at com.Android.dx.merge.DexMerger.mergeDexes(DexMerger.Java:171)
    at com.Android.dx.merge.DexMerger.merge(DexMerger.Java:189)
    at com.Android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.Java:454)
    at com.Android.dx.command.dexer.Main.runMonoDex(Main.Java:303)
    at com.Android.dx.command.dexer.Main.run(Main.Java:246)
    at com.Android.dx.command.dexer.Main.main(Main.Java:215)
    at com.Android.dx.command.Main.main(Main.Java:106)


 FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:dexDebug'.
> com.Android.ide.common.internal.LoggedErrorException: Failed to run command:
    /home/crash-id/Development/SDK/adt-bundle-linux-x86_64-20140702/sdk/build-tools/21.1.2/dx --dex --no-optimize --output /home/crash-id/AndroidstudioProjects/LocalSin/app/build/intermediates/dex/debug --input-list=/home/crash-id/AndroidstudioProjects/LocalSin/app/build/intermediates/tmp/dex/debug/inputList.txt
  Error Code:
    2
  Output:

    UNEXPECTED TOP-LEVEL EXCEPTION:
    com.Android.dex.DexException: Multiple dex files define Lcom/google/ads/AdRequest$ErrorCode;
        at com.Android.dx.merge.DexMerger.readSortableTypes(DexMerger.Java:596)
        at com.Android.dx.merge.DexMerger.getSortedTypes(DexMerger.Java:554)
        at com.Android.dx.merge.DexMerger.mergeClassDefs(DexMerger.Java:535)
        at com.Android.dx.merge.DexMerger.mergeDexes(DexMerger.Java:171)
        at com.Android.dx.merge.DexMerger.merge(DexMerger.Java:189)
        at com.Android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.Java:454)
        at com.Android.dx.command.dexer.Main.runMonoDex(Main.Java:303)
        at com.Android.dx.command.dexer.Main.run(Main.Java:246)
        at com.Android.dx.command.dexer.Main.main(Main.Java:215)
        at com.Android.dx.command.Main.main(Main.Java:106)



* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

L'application build.gradle est la suivante:

apply plugin: 'com.Android.application'

Android {
    compileSdkVersion 21
    buildToolsVersion "21.1.2"

    defaultConfig {
        applicationId "com.myapp.test"
        minSdkVersion 11
        targetSdkVersion 14
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.txt'
        }
    }
}

dependencies {
    compile 'com.Android.support:support-v4:18.0.0'
    compile 'com.Android.support:appcompat-v7:21.0.3'
    compile 'com.google.Android.gms:play-services:+'
    compile files('libs/google-play-services.jar')
    compile files('libs/httpcore-4.3.2.jar')
    compile files('libs/httpmime-4.3.4.jar')
}

Et le projet build.gradle est le suivant:

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

allprojects {
    repositories {
        jcenter()
    }
}

Avez-vous une idée du problème et de la manière de le résoudre? Une bonne explication du problème serait également utile car je suis nouveau sur Android Studio. Merci d'avance :)

11
definera
compile 'com.google.Android.gms:play-services:+'
compile files('libs/google-play-services.jar')

Je pense que vous devriez supprimer une de ces lignes.

12
Divers

cd Android/&& ./gradlew clean && cd .. && react-native run-Android

7
diogopalhais

J'ai eu l'erreur Android Studio: L'exécution a échoué pour la tâche ': app: dexDebug' que j'ai résolue en définissant multiDexEnabled sur true

defaultConfig {        
    // Enabling multidex support.
    multiDexEnabled true
}

Trop de bibliothèques ont été utilisées dans mon projet, je dépasse donc la limite de 65 000 méthodes imposée par Android pour plus d'informations, voir: http://developer.Android.com/tools/building/multidex.html

3
Netero

évitez d'inclure la bibliothèque entière gms:
compile 'com.google.Android.gms:play-services:+'

À la place, utilisez simplement les composants requis de cette manière:

compile 'com.google.Android.gms:play-services-ads:8.3.0'
compile 'com.google.Android.gms:play-services-analytics:8.3.0'
compile 'com.google.Android.gms:play-services-gcm:8.3.0'
2
bskim45

Cela est dû au fait que vous dupliquez la dépendance de la bibliothèque à l'intérieur de l'application build.gradle dans Android studio.

Android Studio ajoute automatiquement les dépendances de tous les fichiers du dossier libs en utilisant 

compile fileTree(dir: 'libs', include: ['*.jar'])

ou dans votre cas spécifique, la dépendance est ajoutée en utilisant 

compile files('libs/google-play-services.jar')

^ Maintenant, lorsque vous essayez d’ajouter de nouveau la dépendance en utilisant 

compile 'com.google.Android.gms:play-services:+'

vous obtenez l'erreur.



SOLUTION

Supprimez toutes les dépendances en double ajoutées dans "app build.gradle" et vous devriez pouvoir continuer. Dans votre cas, supprimez 

compile 'com.google.Android.gms:play-services:+'
1
meain

Assurez-vous que les noms de package ne sont pas dupliqués dans les projets en cours de compilation

Dans @Drivers 'answer , il est indiqué que dans un projet donné, il ne devrait pas exister de dépendances multiples ayant le même espace de noms. Dans le cas ci-dessus, la bibliothèque Google Play Services a été incluse deux fois et a donc provoqué un conflit de nom de package.

La même chose peut également se produire à travers plusieurs modules (applications, bibliothèques, etc.) dans le même projet. Donc, assurez-vous que pour chaque fichier AndroidManifest.xml, le nom package est unique dans tous les modules: -

AndroidManifest.xml:

<manifest 
    xmlns:Android="http://schemas.Android.com/apk/res/Android"
    package="this.must.be.unique.across.modules">
1
CJBS

J'ai eu le code ci-dessous sur le fichier Gradle et même erreur.

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.Android.support:appcompat-v7:23.0.0'
    compile 'com.google.Android.gms:play-services-ads:8.3.0'
}

dependencies {
    compile 'com.Android.support:design:23.+'
}
dependencies {
    compile 'com.Android.support:design:23.+'
}
dependencies {
    compile 'com.Android.support:design:23.+'
}

Supprimé ces 3 dernières dépendances et maintenant, il fonctionne!

0
Shree Harsha S