498 votes

Erreur: Impossible d'adapter les classes demandées dans un fichier dex unique. Essayez de fournir une liste main-dex. # méthodes: 72477> 65536

Je veux ajouter des services de localisation fusionnés mais cela me montre une erreur. Aidez moi.

 apply plugin: 'com.android.application'

android {
    compileSdkVersion 26
    buildToolsVersion "27.0.1"
    defaultConfig {
        applicationId "com.example.adil.bloodbankapplication"
        minSdkVersion 15
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.android.support:appcompat-v7:26.1.0'
    compile 'com.android.support.constraint:constraint-layout:1.0.2'
    compile 'com.google.firebase:firebase-auth:11.8.0'
    compile 'com.google.firebase:firebase-database:11.8.0'
    compile 'com.android.support:support-v4:26.1.0'
    compile 'junit:junit:4.12'
    compile 'com.android.support:design:26.1.0'
    compile 'com.github.joielechong:countrycodepicker:2.1.5'
    compile 'com.jaredrummler:material-spinner:1.2.4'
    compile 'hanks.xyz:htextview-library:0.1.5'
    compile 'com.firebaseui:firebase-ui-database:1.2.0'
    compile 'com.google.android.gms:play-services:11.8.0'
}


apply plugin: 'com.google.gms.google-services'
 

634voto

AlexPad Points 1432

Aucune des réponses qu'ils vous ont données n'était exhaustive. Le problème réside dans le Multidex. Vous devez ajouter la bibliothèque dans la palette d'applications:

implementation 'com.android.support:multidex:1.0.3'

Ensuite, ajoutez la valeur defaultConfig du dégradé d'application:

 multiDexEnabled true
 

Votre application doit être du type Multidex. Vous devez l'écrire dans le manifeste:

 android:name=".MyApplication"
 

"MyApplication" doit être soit la classe Multidex, soit l'extension.

300voto

Bofeng Points 497

J'ai résolu mon problème avec la solution ci-dessous:

Dans le fichier de construction Gradle, ajoutez une dépendance:

implémentation 'com.android.support:multidex:1.0.3'

Et puis dans la section "defaultConfig", ajoutez:

multiDexEnabled true

164voto

wdanxna Points 205

modifier votre application ou d'un module build.gradle

android {
    defaultConfig {
        ...
        minSdkVersion 21 <----- *here
        targetSdkVersion 26
        multiDexEnabled true <------ *here
    }
    ...
}

Selon la documentation officielle

Multidex support pour Android 5.0 et supérieur

Android 5.0 (API level 21) et plus utilise un moteur d'exécution ART qui prend nativement en charge le chargement plusieurs DEX des fichiers à partir de fichiers APK. ART réalise des pré-compilation à l'application le temps d'installation qui balaye pour classesN.dex fichiers et les compile en un seul .avoine fichier pour l'exécution par l'appareil Android. Par conséquent, si votre minSdkVersion est de 21 ans ou plus, vous n'avez pas besoin de la multidex bibliothèque de prise en charge.

Pour plus d'informations sur l'Android 5.0 exécution, lire l'ART et Dalvik.

https://developer.android.com/studio/build/multidex

60voto

rize Points 561

Vous pouvez suivre cette.

Les Versions de la plate-forme avant d'Android 5.0 (API level 21) utiliser le Dalvik d'exécution pour l'exécution de code de l'application. Par défaut, Dalvik limites des applications à un seul cours.dex fichier bytecode par APK. Afin de contourner cette limitation, vous pouvez ajouter le multidex bibliothèque de prise en charge de votre projet:

dependencies {
  implementation 'com.android.support:multidex:1.0.3'
}

Si votre minSdkVersion est fixé à 21 ans ou plus, tout ce que vous devez faire est de mettre en multiDexEnabled à true dans votre module de niveau de construction.gradle fichier, comme illustré ici:

android {
    defaultConfig {
        ...
        minSdkVersion 21 
        targetSdkVersion 28
        multiDexEnabled true
    }
    ...
}

36voto

Pankaj Kant Patel Points 1317

Salut le problème est ici le supprimer

compile 'com.google.android.gms:play-services:11.8.0'

pourquoi?

Remarque: N'utilisez pas le combiné jouer-les services de la cible. Il apporte des dizaines de bibliothèques, des ballonnements votre application. Au lieu de cela, indiquez seulement le Google Play services de l'Api de votre application utilise.

Et utiliser ce que vous avez besoin.https://developers.google.com/android/guides/setup

Comme pour le service de localisation

com.google.android.gms:play-services-location:11.8.0

Pour La Messagerie En Nuage

com.google.android.gms:play-services-gcm:11.8.0

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