web-dev-qa-db-fra.com

Android Studio: Gradle - la construction a échoué - l'exécution a échoué pour 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 (vertretungsplan)

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 réparer cette erreur?

82
maysi

La bonne réponse est que certains de vos fichiers jar ne sont pas compilés. Vous devriez aller dans votre fichier build.gradle dans votre projet et regarder dans vos dépendances.

Si vous importez seulement des fichiers jar, vous pouvez essayer de les supprimer et de les ajouter un à un. Cela vous aidera à déterminer lequel d'entre eux est à l'origine de l'erreur.

Dans mon cas, je viens de le faire, et lorsque j'ai importé le dernier, l'application compilée. Je pense donc que le vrai problème était que j'en importais trop à la fois. Mais maintenant tout fonctionne.

89
Friis1978

J'ai soudainement eu le même problème, après aucun changement notable.

Je l'ai résolu en supprimant le répertoire app/build et en laissant Gradle construire le projet dans son intégralité.

68
ironmouse

Vous devez vérifier si le même fichier JAR est à nouveau importé. Dans mon cas, il y avait une classe dans un bocal qui était importée dans un autre bocal. Il suffit donc de vérifier si le fichier any/lib est inclus deux fois dans l’ensemble du projet!

16
user2899493

J'ai eu le même problème aussi. Dans mon cas, le problème a commencé après un redémarrage. J'ai fermé mon application, puis le studio Android (dans mon cas, la version 1.1.0), et enfin un arrêt normal. Après cela, j'ai modifié un fichier Java pour ajouter un objet RadioGroup, puis le problème est apparu.

J'ai résolu mon problème en ne changeant qu'un simple "0" pour un "1" dans mon fichier de configuration Gradle, car la cause première du problème avait été générée lors du processus d'exécution de Gradle. Auparavant, j'avais la version '1.0.0', puis je l'ai changée en '1.1.0', comme indiqué dans les images.

Emplacement de la configuration de Gradle modifié Location of the Gradle configuration a changed

Lieu où j'ai pris la bonne version (Fichier -> Paramètres -> Gradle -> Expérimental Location where I took the right version from (File -> Settings -> Gradle -> Experimental

4
RunningWheels

J'ai eu le même type d'erreur lorsque j'ai essayé de compiler un fichier jar de bibliothèque utils dans Eclipse en utilisant Java JRE 1.8, et de l'utiliser dans mon/libs/in Android Studio 1.1.0.

J'avais mon Android Studio configuré pour utiliser JDK1.8.0.

J'ai changé mon Eclipse pour travailler avec JRE 1.7, et l'erreur a été corrigée. Eclipse: Fenêtre-> Préférences-> Onglet Java-> Compilateur -> Niveau de conformité 1.7. Il vous invitera probablement à passer de votre bibliothèque système JRE à jdk1.7.x_x.

Vous devrez peut-être vous assurer de décocher 'Compresser le fichier' lors de l'exportation. Je n'ai pas vérifié si cela avait un effet ou non. Je doute que c'était lié.

4
RW4

Le problème ne concerne PAS Execution failed for task ':dexDebug'

si vous regardez au-dessus de l'erreur montrée en rouge, vous allez voir cette

enter image description here

Pour résoudre ce problème de façon permanente, ajoutez ces lignes dans votre fichier build.gradle

Android {
    dexOptions {
        jumboMode = true
    }
}

Pour plus de détails, consultez cette question: here

4
Sabri Meviş

tilisateurs de Android STUDIO essayez ceci: -

Vous devez ajouter les éléments suivants à vos dépendances de fichiers Gradle:

compile 'com.Android.support:multidex:1.0.0'

Ajoutez ensuite la ligne ci-dessous (application de support multidex) à la balise application de votre manifeste:

Android:name="Android.support.multidex.MultiDexApplication"
3
kumar kundan

Assurez-vous que votre fichier AndroidManifest contient un nom de package dans le nœud du manifeste. Définir un nom de paquet a résolu ce problème pour moi.

3
user1743999

Pourrait résoudre ce problème en ajoutant

compile 'com.Android.support:support-v4:18.0.0'

pour les dépendances dans le vertretungsplan build.gradle, compilez puis supprimez cette ligne et compilez à nouveau.

maintenant ça marche

2
maysi

J'ai eu ce problème parce que j'ai essayé d'utiliser à la fois la bibliothèque de support et appcompat:

dependencies {
    compile fileTree(dir: 'libs', include: '*.jar')
    compile 'com.Android.support:support-v4:23.1.0'
    compile 'com.Android.support:appcompat-v7:23.1.1'
    compile 'com.Android.support:design:23.1.1'
    compile 'com.google.Android.gms:play-services:8.3.0'
}

Après avoir supprimé la bibliothèque de support et remplacé par une version plus ancienne, il a compilé:

dependencies {
    compile fileTree(dir: 'libs', include: '*.jar')
    /*compile 'com.Android.support:appcompat-v7:23.1.1'
    compile 'com.Android.support:design:23.1.1'*/
    compile 'com.Android.support:appcompat-v7:22.2.0'
    compile 'com.Android.support:design:22.2.0'
    compile 'com.google.Android.gms:play-services:8.3.0'
}
1
wzbozon

J'ai eu le même problème, vous devriez faire:

File -> Invalidate Caches / Restart

1
mac229

J'ai eu deux dépendances incompatibles.

Les dépendances ci-dessous ont provoqué 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 de fitness à la version 8.4.0, j'ai pu exécuter l'application.

compile 'com.google.Android.gms:play-services-fitness:8.4.0'
compile 'com.google.Android.gms:play-services-wearable:8.4.0'
1
bradley4

J'ai fait face au même problème. Résolu en faisant cela. Allez à actionbarsherlock -> Paramètres du module -> Dépendances .Retirez la bibliothèque de support v4. En bas à gauche, il y a un bouton plus, à partir de là, ajoutez 1 dépendance de bibliothèque (sélectionnez support-v4). Laissez le programme resynchroniser et nettoyer le projet une fois terminé.

0
Starksky

Si vous utilisez également Dagger ou Butterknife, vous devez ajouter la goyave comme dépendance à votre fichier principal build.gradle comme classpath:

com.google.guava:guava:20.0

D'autre part, si vous rencontrez des problèmes avec un plus gros tas pour le démon Gradle, vous pouvez augmenter l'ajout à votre fichier radle:

 dexOptions {
        javaMaxHeapSize "4g"
    } 

La plupart des réponses fournies ici sont essais et erreurs pour trouver des dépendances en double, mais si vous faites défiler un petit peu la ligne Execution failed for task ':app:dexDebug'., cela vous donnera un indice sur les duplications.

error with a hint .

Dans mon cas, j'ai eu l'erreur suivante:

UNEXPECTED TOP-LEVEL EXCEPTION:
com.Android.dex.DexException: Multiple dex files define L/com/parse/AbstractQueryController$1;
...
...
...
Execution failed for task ':app:dexDebug'.

Je savais donc que pour résoudre ce problème, il me fallait trouver les dépendances en double qui définissent parse.AbstractQueryController

Dans mon cas, j'avais deux modules importés qui se chargeaient dans deux bibliothèques Parse différentes. Faire mon projet charger un seul résolu mon problème.

0
Max Worg

Une raison peut être des bibliothèques dupliquées après l'importation à partir d'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 ne reçoit aucune erreur.

0
bheatcoker

J'ai trouvé un problème très intéressant avec Android Studio et la mise à niveau de mircrosoft vers le navigateur Web. J'ai mis à jour "bêtement" vers la dernière version de IE. Bien entendu, Microsoft, dans sa sagesse infinie, sait exactement quoi faire avec la sécurité. Lorsque j'ai essayé de compiler mon application, l'erreur ne cessait de se produire. Gradle - échec de la construction - Échec de l'exécution pour la tâche. En regardant dans la pile, j'ai vu qu'il ne reconnaissait pas le chemin d'accès à Java.exe. J'ai trouvé cela étrange, car je pouvais juste compiler la veille. J'ai ajouté Java_HOME aux envs du système, fermé Android Studio et rouvert. Bas et voici si l’écran de rappel du mur d’incendie n’est pas apparu, me demandant si je voulais que jave.exe passe au travers.

Quelle grappe!

0
user3763372

(Cela peut être le mauvais fil, car votre problème semble plus spécifique, mais c'est le fil que j'ai trouvé lors de la recherche des mots-clés du problème)

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

Supprimez votre répertoire . Gradle de votre répertoire personnel et faites-le reconstruire/télécharger à nouveau pour vous par Android Studio.

Correction de toutes sortes d'erreurs étranges que je ne pouvais réparer en réinstallant Android Studio lui-même, ni le SDK.

0
user2400553

J'ai également rencontré cette erreur lorsque le package de l'un de mes fichiers de classe était mal orthographié. Bon nombre de ces réponses passent immédiatement aux fichiers Jar, mais je vérifierais également que vos paquets sont correctement orthographiés.

0
nbroeking

il suffit d'ajouter dans build.gradle

compiler 'com.parse.bolts: bolts-Android: 1. +'

compiler 'com.parse: parse-Android: 1.11.0'

et synchroniser le projet avec les fichiers Gradle enter image description here Mais n'ajoutez pas le fichier pars dans les bibliothèques :) OKK

0
Mourad MAMASSI

Dans mon cas, j'ai fait Build > Clean Project et cela a fonctionné!

0
Chintan Shah