J'obtiens cette erreur lors de l'exécution de mon application Android (je l'ai nettoyée puis créée, mais l'erreur est toujours présente)
- Synchroniser: OK
- Faire un projet: OK
- Nettoyer: OK
- Exécuter: erreur
Erreur: l'exécution a échoué pour la tâche ': app: dexDebug' .com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command' C: \ Program Files \ Java \ jdk1.7.0 _25 \ bin \ java.exe '' terminé avec une valeur de sortie différente de zéro 2
Mon fichier gradle:
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 cela fonctionne très bien.
android
asp.net-web-api
gradle
build.gradle
Maverick.pe
la source
la source
Réponses:
Ce problème est probablement dû au dépassement de la limite de dex de 65K méthodes imposée par Android. Ce problème peut être résolu soit par le nettoyage du projet, et la suppression des bibliothèques et des méthodes non utilisées de 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 gradle.
Vous pouvez en savoir plus sur la prise en charge multidex et le développement d' applications avec plus de 65K méthodes ici .
la source
./gradlew assembleDebug --stacktrace --debug
. J'ai vu cette erreur dans mon cascom.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536
Pour moi, le problème était que j'avais mis un code de bibliothèque conforme inutile dans build.gradle
ce qui causait plus de 65k méthodes, donc supprimé, synchronisation de gradle, projet nettoyé, puis réexécuté, puis cette erreur s'est arrêtée. J'avais juste besoin de cartes et de gcm alors j'ai mis ces lignes et un projet synchronisé
Salut les gens, j'ai de nouveau rencontré ce problème et cette fois, c'était à cause du changement de version des outils de construction et il m'a vraiment fallu activer multidex.. donc j'ai ajouté le fichier build.gradle de mon application.
Et créez une classe qui étend la classe Application et incluez cette méthode dans la classe.
inclure également dans la méthode OnCreate
la source
Juste au cas où quelqu'un a encore du mal avec cela et n'a aucune idée de pourquoi cela se produit et comment y remédier. En fait cette erreur
peut avoir de nombreuses raisons, mais certainement pas quelque chose lié à votre version 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 résolu comme suit: Découvrez les dépendances que vous avez incluses plusieurs fois. Pour ce faire, exécutez la commande suivante dans le terminal Android Studio
cela renverra toutes les dépendances, mais les fichiers jar que vous incluez du dossier lib essaient de se débarrasser de la duplication marquée d'un astérisque (*), ce n'est pas toujours possible mais dans certains cas, vous pouvez toujours le faire, après cela essayez d'exclure les modules qui sont inclus plusieurs fois, vous pouvez le faire comme ça
Pour le deuxième cas, lorsque vous dépassez la limite de méthode, la suggestion est d'essayer de la minimiser en supprimant les bibliothèques incluses (la note ressemble à la première solution) si aucun moyen de le faire, ajoutez multiDexEnabled true à votre defaultConfig
cela augmente la limite de méthode, mais ce n'est pas la meilleure chose à faire en raison de problèmes de performances possibles IMPORTANT l' ajout uniquement
multiDexEnabled true
àdefaultConfig
n'est pas suffisant en fait sur tous les appareils exécutant android <5 Lollipop, cela entraînera un comportement inattendu etNoClassDefFoundError
. comment le résoudre est décrit icila source
Je ne savais pas (à ce moment-là) que "compile fileTree (dir: 'libs', include: ['* .jar'])" compile tout ce qui a l'extension jar sur le dossier libs, donc je viens de commenter (ou supprimer) ceci lignes:
et cela fonctionne très bien. Merci quand même! Ma faute.
la source
compile fileTree(dir: 'libs', include: ['*.jar'])
en gradle. Cela m'a aidé.compile fileTree(dir: 'libs', include: ['*.jar'])
mais elle montre toujours la même erreur.J'ai eu le même problème et j'ai corrigé la suppression de la bibliothèque qui n'était pas nécessaire
J'ai supprimé cette bibliothèque et j'ai pu exécuter le projet sans aucun problème.
la source
Le mien a été résolu en activant multiDex pour les versions de débogage.
la source
Je rejette le JDK intégré (en 32 bits) car le JDK intégré est de 64 bits
Cliquez avec le bouton droit sur votre projet -> Ouvrir les paramètres du module -> Emplacement du SDK -> Décochez Utiliser le JDk intégré puis définissez votre chemin JDK, par exemple dans Ubuntu / usr / lib / jvm / java-8-openjdk-i386
la source
echo $JAVA_HOME
pour le cheminProblème possible: vous avez dépassé la limite de 65 000 méthodes de dex, avez-vous peut-être ajouté une bibliothèque ou plusieurs méthodes avant que le problème ne se produise?
la source
Si vous avez déjà mis à jour votre SDK et que vous utilisez également les services google-play, vous devez vous occuper de la dépendance car il existe une sorte de conflit avec:
Suivez ce qui suit: compilez 'com.google.android.gms: play-services: +' Remplacez par compilez 'com.google.android.gms: play-services: 6.5.87'
Remarque: Ici, «6.5.87» est la version du service google-play. J'espère que cela aidera..
la source
J'ai supprimé android-support-v4.jar du dossier libs et son fonctionnement !!!
si votre projet donne une erreur, archivez votre fichier build.gradle
la source
Dans mon cas, le problème était que la nouvelle bibliothèque (dépendance gradle) que j'avais ajoutée reposait 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 dans mon script de construction. Plus précisément, j'ai ajouté Apache Commons
Validator
(pour la validation des e-mails), et deux de ses dépendances (Apache CommonsLogging
et Apache CommonsCollections
) é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 construction). J'ai donc exclu ces versions en conflit des dépendances (modules
) lors de l'ajout de la nouvelle dépendance (laValidator
):Vous pouvez voir les dépendances de vos modules gradle (vous pourriez n'avoir qu'un seul module dans votre projet) à l'aide de la commande gradle suivante (j'utilise le wrapper gradle qui est créé pour vous si vous avez créé votre projet dans Android Studio / Intellij Idée). Exécutez cette commande dans le répertoire racine de votre projet:
./gradlew: VOTRE-NOM-DE-MODULE: dépendances
Après avoir ajouté ces
exclude
directives et réessayer de s'exécuter, j'ai eu uneduplicate file
erreur car elleNOTICE.txt
est utilisée par certaines bibliothèques apache commons telles que Logging et Collections. J'ai dû exclure ce fichier texte lors de l'emballage. Dans mon build.gradle, j'ai ajouté: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'était le cas avec cette bibliothèque spécifique, mais d'autres bibliothèques peuvent utiliser la dernière API des dépendances sous-jacentes (auquel cas vous devez essayer de voir si les autres bibliothèques qui reposent sur le module / dépendance en conflit sont capables de fonctionner avec le version plus récente (en excluant l'ancienne version du module / dépendance sous les entrées de ces bibliothèques)).la source
Dans mon cas, j'ai cette erreur lorsqu'il y a 2 ou plusieurs bibliothèques en conflit (même bibliothèque mais versions différentes). Vérifiez votre application build.gradle dans le bloc de dépendances.
la source
Il existe deux alternatives qui fonctionneront à coup sûr:
Si la méthode ci-dessus n'a pas fonctionné, essayez la suivante.
Ajoutez ce qui suit au fichier build.gradle au niveau de l'application
la source
Error:Execution failed for task ':app:packageAllDebugClassesForMultiDex'. > java.util.zip.ZipException: duplicate entry: android/support/v4/view/MotionEventCompatEclair.class
, que dois-je faire ensuite?La mise à jour de mon SDK Java vers la dernière version
1.7.0_79
et la mise à jour duSDK Location
sous ontProject Structure
résolu le problème pour moi.la source
Mon problème était qu'en plus d'avoir
J'avais aussi cette trace:
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
la source
Pour moi, j'ajoutais toutes les dépendances du Playstore
Mais je n'avais besoin que de google map, donc je l'ai rendu plus précis et l'erreur a été résolue.
la source
dans mon cas, le problème était la version des outils de construction qui était 23.0.0 rc3 et j'ai changé en 22.0.1 et mon problème a été corrigé.
la source
Vous utilisez peut-être un câble de mauvaise qualité / câble défectueux pour connecter votre appareil au PC, j'ai remplacé le câble et cela a fonctionné pour moi.
la source
Cette erreur est due à l'utilisation d'un plus grand nombre de bibliothèques.Dans mon cas, 'compile' com.google.android.gms: play-services-9.4.0 'a causé cette erreur.Pour éviter cette erreur, utilisez les bibliothèques nécessaires.Par exemple, si vous le souhaitez pour utiliser Maps dans votre application.Ensuite, utilisez compile 'com.google.android.gms: play-services-maps: 9.4.0'. tout en ajoutant la dépendance des services google play, spécifiez uniquement les bibliothèques nécessaires.par défaut, il inclut toutes les bibliothèques.
la source
Dans votre
gradle.build
fichier, utilisez ceciEt cela fonctionne très bien.
la source
Si vous voulez voir exactement ce qui cause l'erreur, essayez de créer votre projet via le terminal gradle, comme ceci
./gradlew assembleDebug --stacktrace --debug
. J'ai vu l'erreur suivante dans mon cascom.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 résoudre ce problème, j'ai simplement vérifié les bibliothèques que j'incluais
compile 'com.google.android.gms:play-services:9.8.0'
Je l'ai simplement changé en
compile 'com.google.android.gms:play-services-maps:9.8.0'
et le problème était parti
la source
J'ai eu la même erreur après avoir converti mon projet en
Kotlin
. Mon problème était que mon emplacement jre a été changé pour un chemin invalide pendant le processus (je me demande pourquoi cela pourrait arriver ... m'a fait perdre du temps). Corrigé en faisant ceci:Décochez l'
Use embedded JDK
option qui pointe vers une ancienne installation JDK et sélectionnez la bonne:Après avoir changé cela, l'erreur a disparu
la source
A travaillé pour moi :)
J'ai mis à niveau le java vers la dernière version 8 auparavant, il était 7, puis je suis allé dans OPEN MODULE SETTING en cliquant avec le bouton droit sur le projet et j'ai changé le chemin jdk en / usr / lib / jvm / java-8-oracle le nouveau java 8 installé. Et redémarrez le studio
archiver / usr / lib / jvm pour le nom du dossier java 8
J'utilise ubuntu
la source