Je reçois cette erreur en exécutant mon application Android (je l'ai nettoyée puis reconstruite, mais l'erreur est toujours présente)
Erreur: L'exécution a échoué pour la tâche ': app: dexDebug' .com.Android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: La commande de processus 'C'\Program Files\Java\jdk1.7.0 _25\bin\Java.exe '' terminé avec une valeur de sortie 2 différente de zéro
Mon fichier de grade:
apply plugin: 'com.Android.application'
Android {
compileSdkVersion 21
buildToolsVersion "21.1.2"
defaultConfig {
applicationId "com.rzr.rzevallosr.miappdepruebas"
minSdkVersion 19
targetSdkVersion 21
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
}
}
productFlavors {
}
repositories {
mavenCentral()
flatDir {
dirs 'libs'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
// This library handles authentication and authorization
compile 'com.spotify.sdk:spotify-auth:1.0.0-beta9@aar'
// This library handles music playback
compile 'com.spotify.sdk:spotify-player:1.0.0-beta9@aar'
compile 'com.Android.support:appcompat-v7:21.0.3'
compile 'com.Android.support:recyclerview-v7:21.0.+'
compile 'com.squareup.retrofit:retrofit:1.9.0'
compile 'com.squareup.okhttp:okhttp-urlconnection:2.2.0'
compile 'com.squareup.okhttp:okhttp:2.2.0'
compile files('libs/spotify-web-api-Android-master-0.1.0.jar')
compile files('libs/okio-1.3.0.jar')
}
EDIT: Je n'ai pas vu "compile fileTree (dir: 'libs', include: ['* .jar'])" il compilait deux fois mes bibliothèques, donc je viens de commenter:
//compile 'com.squareup.retrofit:retrofit:1.9.0'
//compile 'com.squareup.okhttp:okhttp-urlconnection:2.2.0'
//compile 'com.squareup.okhttp:okhttp:2.2.0'
//compile files('libs/spotify-web-api-Android-master-0.1.0.jar')
//compile files('libs/okio-1.3.0.jar')
et ça marche bien.
Je ne savais pas (à ce moment-là) que "compile fileTree (dir: 'libs', inclure: ['* .jar'])" compiler tout ce qui a l'extension jar sur le dossier libs, donc je commentez (ou supprimez) ces lignes:
//compile 'com.squareup.retrofit:retrofit:1.9.0'
//compile 'com.squareup.okhttp:okhttp-urlconnection:2.2.0'
//compile 'com.squareup.okhttp:okhttp:2.2.0'
//compile files('libs/spotify-web-api-Android-master-0.1.0.jar')
//compile files('libs/okio-1.3.0.jar')
et ça marche bien. Merci quand même! Ma faute.
Ce problème est probablement dû au dépassement de la limite de 65 000 méthodes imposée par Android. Ce problème peut être résolu en nettoyant le projet et en supprimant certaines bibliothèques et méthodes inutilisées des dépendances dans build.gradle, OU en ajoutant le support multidex. .
Donc, si vous devez conserver des bibliothèques et des méthodes, vous pouvez activer le support multi-dex en le déclarant dans la configuration de gradle.
defaultConfig {
// Enabling multidex support.
multiDexEnabled true
}
Vous pouvez en savoir plus sur le support et le développement multidex applications avec plus de 65K méthodes ici .
Pour moi, le problème était que j'avais mis un code de bibliothèque complie inutile dans build.gradle
dependencies {
compile 'com.google.Android.gms:play-services:7.5.0'
}
qui causait plus de 65k méthodes, donc supprimé, gradle sync, projet nettoyé, puis exécuté à nouveau et puis cette erreur s'est arrêtée. J'avais juste besoin de cartes et de gcm, donc je mets ces lignes et le projet synchronisé
compile 'com.google.Android.gms:play-services-gcm:7.5.0'
compile 'com.google.Android.gms:play-services-location:7.5.0'
Salut les gens, j'ai encore rencontré ce problème et cette fois-ci, c'était à cause de l'évolution de la version des outils de génération et il me fallait vraiment activer multidex..Ainsi, j'ai ajouté le fichier build.gradle de mon application ..
defaultConfig {
applicationId "com.am.Android"
minSdkVersion 13
targetSdkVersion 23
// Enabling multidex support.
multiDexEnabled true
}
dexOptions {
incremental true
javaMaxHeapSize "2048M"
jumboMode = true
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.Android.support:multidex:1.0.1'
}
Et créez une classe qui étend la classe Application et incluez cette méthode dans la classe.
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(this);
}
inclure également dans la méthode OnCreate aussi
@Override
public void onCreate() {
MultiDex.install(this);
super.onCreate();
}
Juste au cas où quelqu'un aurait encore du mal à comprendre cela et ne comprendrait pas pourquoi cela se produit et comment le réparer. En fait cette erreur
Erreur: L'exécution a échoué pour la tâche ': app: dexDebug'. > com.Android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: processus 'commande' C:\Program Files\Java\jdkx.x.x_xx\bin\Java.exe '' terminé valeur de sortie non nulle 2
peut avoir de nombreuses raisons mais certainement pas quelque chose lié à votre version de JDK alors ne perdez pas votre temps dans la mauvaise direction. Ce sont deux raisons principales pour que cela se produise
Le premier cas peut être corrigé comme suit: Recherchez les dépendances que vous avez incluses plusieurs fois. Pour ce faire, exécutez la commande suivante dans Android terminal de studio
gradlew -q dependencies yourProjectName_usually_app:dependencies --configuration compile
toutes les dépendances seront renvoyées, mais les fichiers jar inclus dans le dossier lib essaient de supprimer les doublons marqués d’un astérisque (*). Ce n’est pas toujours possible, mais vous pouvez toujours le faire. Après cela, essayez d’exclure les modules sont inclus plusieurs fois, vous pouvez le faire comme ça
compile ('com.facebook.Android:facebook-Android-sdk:4.0.1'){
exclude module: 'support-v4'
}
Dans le second cas, lorsque vous dépassez la suggestion de limite de méthode, essayez de la minimiser en supprimant les bibliothèques incluses (la note ressemble à la première solution) si aucun moyen de le faire n’ajoutez multiDexEnabled true à votre defaultConfig.
defaultConfig {
...
...
multiDexEnabled true
}
cela augmente la limite de la méthode mais ce n’est pas la meilleure chose à faire en raison de problèmes de performances possibles IMPORTANT n’ajoutant que multiDexEnabled true
à defaultConfig
n'est pas suffisant en fait sur tous les appareils exécutant Android <5 Lollipop, il en résultera un comportement inattendu et NoClassDefFoundError
. comment le résoudre est décrit ici
J'ai eu le même problème et j'ai corrigé la suppression de la bibliothèque qui était inutile
compile fileTree(dir: 'libs', include: ['*.jar'])
J'ai supprimé cette bibliothèque et je pouvais exécuter le projet sans problème.
Le mien a été résolu en activant multiDex pour les versions de débogage.
defaultConfig {
multiDexEnabled true
}
Je rejette le JDK intégré (en 32 bits) car intégré le JDK est en 64 bits
Cliquez avec le bouton droit de la souris sur votre projet -> Paramètre du module ouvert -> Emplacement du SDK -> Décochez la case Utiliser incorporé JDk définit ensuite votre chemin JDK, par exemple sous Ubuntu / usr/lib/jvm/Java-8-openjdk-i386
Problème possible: Vous avez dépassé la limite des méthodes de 65k, vous avez peut-être ajouté une bibliothèque ou plusieurs méthodes avant que le problème ne survienne?
Si vous avez déjà mis à jour votre SDK et que vous utilisez également google-play-services, vous devez prendre en charge la dépendance car il existe une sorte de conflit avec:
Suivez les instructions ci-dessous: compilez 'com.google.Android.gms: play-services: +' à remplacer par compile 'com.google.Android.gms: play-services: 6.5.87'
Remarque: Ici, '6.5.87' est la version du service google-play-service. J'espère que cela aidera..
Dans mon cas, le problème était que la nouvelle bibliothèque (dépendance de rangée) que j'avais ajoutée s'appuyait sur d'autres dépendances et que deux de ces dépendances sous-jacentes étaient en conflit/en conflit avec certaines dépendances d'autres bibliothèques/dépendances de mon script de construction. Plus précisément, j'ai ajouté Apache Commons Validator
(pour la validation du courrier électronique) et deux de ses dépendances (Apache Commons Logging
et Apache Commons Collections
) étaient en conflit avec celles utilisées par Robolectric (car différentes versions des mêmes bibliothèques étaient présentes dans mon chemin de compilation). J'ai donc exclu les versions en conflit des dépendances (modules
) lors de l'ajout de la nouvelle dépendance (le Validator
):
compile ('commons-validator:commons-validator:1.4.1') {
exclude module: 'commons-logging'
exclude module: 'commons-collections'
}
Vous pouvez voir les dépendances de votre (vos) module (s) Gradle (vous n’avez peut-être qu’un module dans votre projet) à l’aide de la commande Gradle suivante (j’utilise le wrapper Gradle créé pour vous si vous avez créé votre projet dans Android Studio/Idée Intellij). Exécutez cette commande dans le répertoire racine de votre projet:
./gradlew: YOUR-MODULE-NAME: dépendances
Après avoir ajouté ces directives exclude
et réessayé, une erreur duplicate file
pour NOTICE.txt
est utilisée par certaines bibliothèques communes Apache telles que Logging et Collections. J'ai dû exclure ce fichier texte lors de l'emballage. Dans mon build.gradle, j'ai ajouté:
packagingOptions {
exclude 'META-INF/NOTICE'
exclude 'META-INF/notice.txt'
exclude 'META-INF/NOTICE.txt'
}
Il s'est avéré que la nouvelle bibliothèque (la Validator
) peut fonctionner avec des versions légèrement plus anciennes de ses dépendances/modules (qui sont déjà importées dans mon chemin de construction par une autre bibliothèque (Robolectric)). C’est le cas de cette bibliothèque spécifique, mais d’autres bibliothèques utilisent peut-être la dernière API des dépendances sous-jacentes (dans ce cas, vous devez essayer de voir si les autres bibliothèques qui dépendent du module/de la dépendance en conflit sont capables de fonctionner avec le version plus récente (en excluant l'ancienne version du module/dependecy sous les entrées de ces bibliothèques)).
Je pense que c'est des conflits de fichier .jar dans votre projet.
J'ai supprimé Android-support-v4.jar du dossier libs et son fonctionnement !!!
si votre projet donne une erreur, vérifiez votre fichier build.gradle
dépendances {
}
Dans mon cas, j'ai eu cette erreur quand il y a 2 ou plusieurs bibliothèques en conflit (même bibliothèque mais versions différentes). Vérifiez le build.gradle de votre application dans le bloc des dépendances.
La mise à jour de mon Java SDK vers la dernière version 1.7.0_79
et la mise à jour de SDK Location
sous Project Structure
ont résolu le problème.
Mon problème était qu'en plus d'avoir
com.Android.build.api.transform.TransformException: com.Android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: processus 'commande' /Library/Java/JavaVirtualMachines/jdk1.X.X_XX .jdk/Sommaire/Accueil/bin/Java '' terminé avec une valeur de sortie non nulle 2
J'ai aussi eu cette trace:
Erreur de traduction non capturée: Java.lang.IllegalArgumentException: déjà ajoutée: Lcom/mypackage/ClassX;
Le problème était que j'ajoutais la même classe dans deux bibliothèques différentes. En supprimant le fichier class/jar de l’une des bibliothèques, le projet s’exécute correctement.
Pour moi, j'ajoutais toutes les dépendances du Playstore
compiler 'com.google.Android.gms: play-services: 8.4.0'
Mais je n'avais besoin que de Google Map, je l'ai donc rendue plus précise et l'erreur a été résolue.
compiler 'com.google.Android.gms: play-services-maps: 8.4.0'
Il y a deux alternatives qui fonctionneront à coup sûr:
Si la méthode ci-dessus n'a pas fonctionné, essayez la suivante.
Ajoutez les éléments suivants au fichier build.gradle au niveau de l'application
defaultConfig {
multiDexEnabled true
}
Cette erreur est due à l'utilisation de plus de nombres de libraries.in mon cas 'compiler' com.google.Android.gms: play-services-9.4.0 'a provoqué cette erreur.Pour éviter cette erreur, utilisez les librairies nécessaires.par exemple si vous voulez pour utiliser Maps dans votre application. Utilisez ensuite la compilation 'com.google.Android.gms: play-services-maps: 9.4.0'. En ajoutant la dépendance aux services de Google Play, spécifiez les bibliothèques nécessaires uniquement.par défaut, toutes les bibliothèques sont incluses.
J'ai eu la même erreur après la conversion de mon projet en Kotlin
. Mon problème était que mon emplacement de jre avait été changé pour un chemin invalide au cours du processus (je me demande pourquoi cela pourrait arriver ... m'a fait perdre du temps). Corrigé en faisant ceci:
File > Project Structure > SDK Location
Décocher l'option Use embedded JDK
qui pointait vers une ancienne installation de JDK et sélectionner celle qui convient:
/home/my_user/jdk1.8.0_101
Après avoir changé cela, l'erreur a disparu
TRAVAILLE POUR MOI:)
j’ai mis à niveau le Java vers la dernière version 8 précédemment, il était alors 7, puis cliquez sur OPEN MODULE SETTING en cliquant avec le bouton droit de la souris sur proj , puis a changé le chemin jdk en/usr/lib/jvm/Java-8-Oracle , le nouveau Java 8 installé. Et redémarrer le studio
vérifier dans/usr/lib/jvm pour Java 8 nom du dossier
Si vous voulez voir ce qui cause exactement l'erreur, essayez de construire votre projet via un terminal graduel, comme ceci ./gradlew assembleDebug --stacktrace --debug
. J'ai vu l'erreur suivante dans mon cas com.Android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536
Cela s'est produit lorsque j'essayais d'intégrer Google Maps à mon projet. Pour y remédier, j'ai simplement vérifié les bibliothèques que j'inclusais
compile 'com.google.Android.gms:play-services:9.8.0'
Je l'ai simplement changé pour
compile 'com.google.Android.gms:play-services-maps:9.8.0'
et le problème était parti
Vous utilisez peut-être un câble de qualité médiocre/défectueux pour connecter votre appareil au PC. J'ai remplacé le câble et cela a fonctionné pour moi.
dans mon cas, le problème était la version des outils de compilation qui était 23.0.0 rc et je suis passé à 22.0.1 et mon problème a été résolu.
Dans votre fichier gradle.build
, utilisez ceci
"compile fileTree(dir: 'libs', include: ['*.jar'])"
Et ça marche bien.