84 votes

Android Studio : Gradle - build fails -- Execution failed for task ':dexDebug' (Échec de l'exécution de la tâche ':dexDebug')

Erreur :

Gradle: Execution failed for task ':vertretungsplan:dexDebug'.
> Failed to run command:
    P:\Android-Studio\sdk\build-tools\18.0.1\dx.bat --dex --output P:\Projekte\VertretungsplanProject\vertretungsplan\build\libs\vertretungsplan-debug.dex P:\Projekte\VertretungsplanProject\vertretungsplan\build\classes\debug P:\Projekte\VertretungsplanProject\vertretungsplan\build\dependency-cache\debug P:\Android-Studio\sdk\extras\android\m2repository\com\android\support\support-v4\18.0.0\support-v4-18.0.0.jar P:\Projekte\VertretungsplanProject\vertretungsplan\libs\commons-io-2.4.jar P:\Projekte\VertretungsplanProject\vertretungsplan\build\exploded-bundles\VertretungsplanProjectLibrariesActionbarsherlockUnspecified.aar\classes.jar
Error Code:
    2
Output:
    trouble processing:
    bad class file magic (cafebabe) or version (0033.0000)
    ...while parsing de/MayerhoferSimon/Vertretungsplan/LoginActivity$2.class
    ...while processing de/MayerhoferSimon/Vertretungsplan/LoginActivity$2.class
    trouble processing:
    bad class file magic (cafebabe) or version (0033.0000)
    ...while parsing de/MayerhoferSimon/Vertretungsplan/MainActivity$1.class
    ...while processing de/MayerhoferSimon/Vertretungsplan/MainActivity$1.class
    trouble processing:
    bad class file magic (cafebabe) or version (0033.0000)
    ...while parsing de/MayerhoferSimon/Vertretungsplan/YQL/YqlVplanParser.class
    ...while processing de/MayerhoferSimon/Vertretungsplan/YQL/YqlVplanParser.class
    3 warnings
    UNEXPECTED TOP-LEVEL EXCEPTION:
    com.android.dx.util.DexException: Multiple dex files define Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompat$AccessibilityServiceInfoVersionImpl;
        at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:592)
        at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:550)
        at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:531)
        at com.android.dx.merge.DexMerger.mergeDexBuffers(DexMerger.java:168)
        at com.android.dx.merge.DexMerger.merge(DexMerger.java:186)
        at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:300)
        at com.android.dx.command.dexer.Main.run(Main.java:232)
        at com.android.dx.command.dexer.Main.main(Main.java:174)
        at com.android.dx.command.Main.main(Main.java:91)

Structure du projet :

enter image description here

build.gradle (actionbarsherlock)

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.5.+'
    }
}
apply plugin: 'android-library'

dependencies {
    compile 'com.android.support:support-v4:18.0.0'
}

android {
    compileSdkVersion 18
    buildToolsVersion "18.0.1"

    defaultConfig {
        minSdkVersion 8
        targetSdkVersion 11
    }

    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src']
            resources.srcDirs = ['src']
            res.srcDirs = ['res']
        }
    }
}

build.gradle (plan de vérification)

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.5.+'
    }
}
apply plugin: 'android'

dependencies {
    compile files('libs/commons-io-2.4.jar')
    compile project(':libraries:actionbarsherlock')
}

android {
    compileSdkVersion 18
    buildToolsVersion "18.0.1"

    defaultConfig {
        minSdkVersion 8
        targetSdkVersion 11
    }
}

settings.gradle

include ':vertretungsplan', ':libraries:actionbarsherlock'

Comment puis-je corriger cette erreur ?

1voto

bradley4 Points 1220

J'avais deux dépendances incompatibles.

Les dépendances ci-dessous sont à l'origine de l'erreur.

compile 'com.google.android.gms:play-services-fitness:8.3.0'
compile 'com.google.android.gms:play-services-wearable:8.4.0'

En changeant la dépendance fitness pour la version 8.4.0, j'ai pu faire fonctionner l'application.

compile 'com.google.android.gms:play-services-fitness:8.4.0'
compile 'com.google.android.gms:play-services-wearable:8.4.0'

0voto

user3763372 Points 1

J'ai trouvé un problème très intéressant avec Android Studio et la mise à jour mircrosoft du navigateur web. J'ai mis à jour "bêtement" vers la dernière version de ie. Bien sûr, Microsoft, dans sa sagesse infinie, sait exactement quoi faire avec la sécurité. Lorsque j'ai essayé de compiler mon application, j'ai obtenu l'erreur Gradle - build fails -- Execution failed for task. En regardant dans la pile, j'ai vu qu'elle ne reconnaissait pas le chemin vers java.exe. J'ai trouvé cela étrange car j'ai pu compiler mon application la veille. J'ai ajouté JAVA_HOME aux variables env du système, j'ai fermé Android Studio et je l'ai rouvert. Et voilà que l'écran d'alerte du pare-feu n'est pas apparu, me demandant si je voulais laisser passer jave.exe.

Quel regroupement !

0voto

user2400553 Points 1

(Ce n'est peut-être pas le bon fil, car votre problème semble plus spécifique, mais c'est le fil que j'ai trouvé en recherchant les mots-clés du problème).

Malgré tous les bons conseils, la seule chose qui m'a aidé, et que j'aimerais partager juste au cas où, si tout le reste ne fonctionne pas :

Retirez votre .gradle dans votre répertoire personnel et qu'il soit reconstruit/téléchargé pour vous par Android Studio.

J'ai corrigé toutes sortes d'erreurs bizarres qui ne pouvaient pas être corrigées en réinstallant Android Studio lui-même ou le SDK.

0voto

bheatcoker Points 521

Une raison peut être la duplication des bibliothèques après l'importation à partir de l'IDE Eclipse.

dependencies {
compile 'com.github.japgolly.android:svg-android:2.0.5'
compile 'com.google.android.gms:play-services:+'
compile 'com.android.support:appcompat-v7:21.0.3'
compile files('libs/androidannotations-api-2.7.1.jar')
compile files('libs/androidasync-2.1.2.jar')
//compile files('libs/google-play-services.jar')
compile files('libs/universal-image-loader-1.8.2.jar')}

J'ai eu le même problème, après commentaire :

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

L'application n'obtient aucune erreur.

0voto

Starksky Points 41

J'ai rencontré le même problème, qui a été résolu en procédant comme suit. Aller dans actionbarsherlock -> module settings ->dependencies .enlever la librairie support v4 .en bas à gauche il y a un bouton plus , de là ajouter 1 Library Dependency (Select support-v4) . Laisser le gradle se resynchroniser et nettoyer le projet une fois que c'est fait.

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