62 votes

Android Studio DexIndexOverflowException: l'ID de méthode n'est pas dans

J'utilise Android Studio pour développer une application et je suis confronté à cette erreur que je ne sais pas comment résoudre.

com.android.dex.DexIndexOverflowException: l'ID de méthode n'est pas dans [0, 0xffff]

 :app:lintVitalRelease
:app:prePackageMarkerForRelease
:app:transformClassesWithDexForRelease FAILED
Error:Execution failed for task ':app:transformClassesWithDexForRelease'.
> com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536
Information:BUILD FAILED
Information:Total time: 34.783 secs
Information:1 error 
 

122voto

JustiN Points 2758

Essayez d'activer multiDex dans build.gradle:

 android {

    defaultConfig {
        ...

        // Enabling multidex support.
        multiDexEnabled true
    }
    ...
}

dependencies {
  compile 'com.android.support:multidex:1.0.0'
}
 

Cet article peut être utile: Problème DexIndexOverflowException après la mise à jour vers la dernière bibliothèque appcompat et support.

27voto

vbp Points 869

Android a une limite supérieure prédéfinie de méthodes de 65 536.

si vous avez ajouté les services de jeu dans leur ensemble, supprimez-les et ajoutez-en des spécifiques.

supprimez compile 'com.google.android.gms:play-services:9.6.1' puis ajoutez ex: compile 'com.google.android.gms:play-services-maps:9.6.1' pour les cartes.

https://developers.google.com/android/guides/setup

affiche une liste des API distinctes que vous pouvez inclure lors de la compilation de votre application et comment les décrire dans votre fichier build.gradle

22voto

Eugene Lezov Points 386

mettre multiDex dans votre classement

 defaultConfig {
    // ...
    multiDexEnabled true
}
 

c'est un travail pour moi.

7voto

Ahmad Aghazadeh Points 8690

Meilleure façon d'utiliser emballage individuel sous la liste de tous les services google paquet.

Google Play services de l'API Description dans la construction.gradle
Google+ com.google.android.gms:jouer-services-plus:11.2.0
Google Compte Connexion com.google.android.gms:jouer-services-auth:11.2.0
Google Actions, de Client de Base de la Bibliothèque decom.google.android.gms:jouer de services de base:11.2.0
Adresse de Google API com.google.android.gms:jouer-services-identité:11.2.0
Google Analytics com.google.android.gms:jouer-services-analytics:11.2.0
Google Sensibilisation com.google.android.gms:jouer-services-sensibilisation:11.2.0
Google Cast com.google.android.gms:jouer-services-distribution:11.2.0
Google Cloud Messaging com.google.android.gms:jouer-services-gcm:11.2.0
Google Drive com.google.android.gms:jouer-services-en voiture:11.2.0
Google Fit com.google.android.gms:jouer-services-remise en forme:11.2.0
Localisation de Google, et la Reconnaissance de l'Activité com.google.android.gms:services-lieu:11.2.0
Google Maps com.google.android.gms:jouer-services-cartes:11.2.0
Google Mobile Ads com.google.android.gms:jouer-services-petites annonces:11.2.0
Google Places com.google.android.gms:jouer-services-lieux:11.2.0
Mobile Vision com.google.android.gms:jouer-services-vision:11.2.0
Google à Proximité de com.google.android.gms:jouer de services de proximité:11.2.0
Google Panorama Viewer com.google.android.gms:jouer-services-panorama:11.2.0
Google Play services de Jeu com.google.android.gms:jouer-services-jeux:11.2.0
SafetyNet com.google.android.gms:jouer-services-safetynet:11.2.0
Android Payer com.google.android.gms:jouer-les services de porte-monnaie:11.2.0
Android Wear com.google.android.gms:jouer-services-portable:11.2.0

5voto

scai Points 5123

DexIndexOverflowException est également causé par le dépassement de 65 536 méthodes. Cela peut facilement arriver lors de l'ajout d'une grande bibliothèque telle que les services Google Play. Voir cette réponse pour une solution.

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