Impossible de créer l'apk: le nombre de références de méthode ne peut pas dépasser 64K

J'ai essayé de créer le fichier apk pour mon application, mais je reçois l'erreur: le nombre de références de méthode ne peut pas dépasser 64K.

Voici les erreurs,

  • Android extrait le texte du navigateur
  • Style personnalisé pour Android TabWidget
  • Comment obtenir une clé de version Google Maps API v2
  • Pourquoi la datepicker ajoute-t-il un calendrier à mon avis?
  • Android - Utilisation de Dao Pattern avec contenuProvider
  • BottomNavigationView n'est pas pleine largeur
  • Erreur: le nombre de références de méthode dans un fichier .dex ne peut pas dépasser 64K. Découvrez comment résoudre ce problème à l' adresse https://developer.android.com/tools/building/multidex.html

    Erreur: l'exécution a échoué pour la tâche ': application: transformClassesWithDexForDebug'.

    Com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException: org.gradle.process. Internal.ExecException: Process 'command' C: \ Program Files \ Java \ jdk1.7.0_15 \ bin \ java.exe '' terminé avec la valeur de sortie non nulle 2

    C'est mon fichier gradle

    apply plugin: 'com.android.application' android { compileSdkVersion 23 buildToolsVersion "23.0.3" defaultConfig { applicationId "nikhilraghavendra.hopper" minSdkVersion 21 targetSdkVersion 23 versionCode 1 versionName "1.0" } buildTypes { release { shrinkResources true minifyEnabled true useProguard true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } packagingOptions { exclude 'META-INF/LICENSE' exclude 'META-INF/LICENSE-FIREBASE.txt' exclude 'META-INF/NOTICE' } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:23.2.1' compile 'com.android.support:design:23.2.1' compile 'com.google.android.gms:play-services-identity:8.4.0' compile 'com.firebase:firebase-client-android:2.3.1' compile 'com.android.support:cardview-v7:23.2.1' compile 'com.google.android.gms:play-services:8.4.0' } 

    Je veux créer le fichier apk et le déployer sans problèmes, comment puis-je le faire?

    Mettre à jour

    J'ai également essayé ce qui suit

     apply plugin: 'com.android.application' android { compileSdkVersion 23 buildToolsVersion "23.0.3" dexOptions { maxProcessCount = 4 // this is the default value } dataBinding{ enabled = true } defaultConfig { applicationId "nikhilraghavendra.hopper" minSdkVersion 21 targetSdkVersion 23 resConfigs "en", "fr" versionCode 1 versionName "1.0" } buildTypes { release { shrinkResources true minifyEnabled true useProguard true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } debug { minifyEnabled true useProguard false } } packagingOptions { exclude 'META-INF/LICENSE' exclude 'META-INF/LICENSE-FIREBASE.txt' exclude 'META-INF/NOTICE' } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:23.2.1' compile 'com.android.support:design:23.2.1' compile 'com.google.android.gms:play-services-identity:8.4.0' compile 'com.firebase:firebase-client-android:2.3.1' compile 'com.android.support:cardview-v7:23.2.1' compile 'com.google.android.gms:play-services:8.4.0' } 

    Cela produit le message:

    Erreur: l'exécution a échoué pour la tâche ': application: transformClassesWithNewClassShrinkerForDebug'.

    Les avertissements trouvés pendant le rétrécissement, utilisez-le -dangement ou -ignorez les avertissements pour les supprimer.

    Comment puis-je traiter cela et créer un bon apk? Aidez-nous.

  • Comment inclure un projet Java dans un projet Android?
  • Android SDK Manager donne "Failed to fetch URL https://dl-ssl.google.com/android/repository/repository.xml" lors de la sélection du référentiel
  • Firebase Dynamic Links ne relie pas profondément avec une URL courte sur les onglets personnalisés
  • Android Http get Session Cookie
  • L'API Android peut-elle être utilisée pour intercepter et lire des messages d'opérateur (messages USSD)?
  • Quittez l'application lorsque vous appuyez sur le bouton Précédent dans l'activité avec plusieurs fragments dans le tiroir de navigation
  • 3 Solutions collect form web for “Impossible de créer l'apk: le nombre de références de méthode ne peut pas dépasser 64K”

     android { compileSdkVersion 26 buildToolsVersion "26.0.0" defaultConfig { applicationId "com.try.app" minSdkVersion 21 targetSdkVersion 26 versionCode 1 versionName "1.0" multiDexEnabled true } 

    Ici multiDexEnabled true devrait faire le jeu pour vous

    MISE À JOUR: Pour prendre en charge la dernière version d'Android
    1. Si votre minSdkVersion est réglé sur 21 ou plus, tout ce que vous devez faire est de définir multiDexEnabled comme vrai dans votre fichier build.gradle au niveau du module, comme indiqué ci-dessus.
    2. Toutefois, si votre minSdkVersion est réglé sur 20 ou inférieur, vous devez utiliser la bibliothèque de support multidépendante avec les modifications ci-dessus comme suit:

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

    En plus de l'ajout ci-dessus de la bibliothèque de support, vous devez apporter des modifications à votre classe d'application comme mentionné dans ce lien .

    MEILLEURE PRATIQUE:
    1. Supprimez tout code inutilisé avec proguard.
    2. Évitez d'ajouter des dépendances inutiles dans votre projet.
    3. Si des méthodes de nombre limité ou des classes de toute bibliothèque open source sont nécessaires, il est conseillé de cloner uniquement ceux de votre projet, car non seulement vous donne un contrôle total, mais permet également à Proguard d'agir sur eux et vous n'avez pas Toutes les méthodes inutilisées dans votre code.

    Source: développeurs Android – Configurez les applications avec le compte de la méthode 64K

    Impossible de créer l'apk: le nombre de références de méthode ne peut pas dépasser 64K lorsque le fichier .dex de l'application contient plus de 65 536 méthodes.

    Excedence de la méthode 65K, ce qui signifie que la méthode compte plus de 65 536 méthodes Il existe différentes façons de réparer:

    1. Réduisez les dépendances dans votre projet, mettez les dépendances en gradle qui sont nécessaires

    La plupart des problèmes que j'ai rencontrés chez les autres développeurs utilisent Google Play Services dans le projet comme celui-ci.

      compile 'com.google.android.gms:play‐services:8.4.0' 

    Donc, la meilleure façon est de choisir uniquement certaines dépendances dans Google Play Services que vous voulez vraiment utiliser.

     compile 'com.google.android.gms:play‐services‐location:8.4.0' compile 'com.google.android.gms:play‐services‐maps:8.4.0' compile 'com.google.android.gms:play‐services‐ads:8.4.0' 

    2. Définissez la version SDK minimale à 21 ou supérieure

    Pourquoi cela a-t-il fonctionné lorsque vous changez le SDK minimum à 21? C'est à cause de l'Android 5.0 ou plus, utilisez ART (Android Runtime) qui prenait en charge MultiDex au lieu de Dalvik. Ainsi, ART peut prendre en charge plus de 65 536 méthodes.

    3. Utilisez Proguard pour réduire la méthode inutile

    4. Utilisez MultiDex

    Mais ce sont les limites de la bibliothèque MultiDex

    • Peut apparaître ANR alors que l'application lance si les fichiers .dex sont trop volumineux.

    • Il faut définir le SDK minimum à la version 14 ou supérieure.

    • MulitDex utilise plus de mémoire et peut se bloquer lorsque l'application est en cours d'exécution si la mémoire d'allocation est supérieure.

    • Prenez plus de temps de construction lorsque vous construisez le projet

    Mettez ceci dans votre defaultConfig :

     multiDexEnabled true 
    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.