Je reçois l’erreur com.Android.dex.DexException: Multiple dex files define Lcom/google/Android/gms/internal/zzau;
lorsque je lance mon application Les fichiers de classement sont
app.gradle
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.Android.support:support-v4:21.0.3'
compile 'com.Android.support:appcompat-v7:21.0.3'
compile 'com.Android.support:recyclerview-v7:21.0.0'
compile 'com.Android.support:cardview-v7:21.0.0'
compile 'com.google.Android.gms:play-services:7.0.+'
compile 'com.Android.support:mediarouter-v7:21.0.3'
compile 'com.squareup:otto:1.3.5'
compile 'com.squareup.picasso:picasso:2.3.4'
compile 'com.squareup.okhttp:okhttp:2.2.0'
compile 'com.squareup.okhttp:okhttp-urlconnection:2.2.0'
compile 'com.squareup.retrofit:retrofit:1.9.0'
compile 'com.github.ksoichiro:Android-observablescrollview:1.4.0'
compile 'com.astuetz:pagerslidingtabstrip:1.0.1'
compile 'com.facebook.Android:facebook-Android-sdk:4.1.0'
compile 'com.parse.bolts:bolts-Android:1.+'
compile 'com.edmodo:rangebar:1.0.0'
compile 'com.melnykov:floatingactionbutton:1.3.0'
compile project(':library_viewpager')
compile project(':androidHorizontalListView')
compile project(':CastCompanionLibrary')
compile project(':mobihelp_sdk_Android_v1.4')
compile fileTree(include: 'Parse-*.jar', dir: 'libs')
compile files('libs/Parse-1.9.2.jar')
compile files('libs/GoogleConversionTrackingSdk-2.2.2.jar')
}
CastCompanionLibrary
dependencies {
compile 'com.Android.support:appcompat-v7:22.+'
compile 'com.Android.support:mediarouter-v7:22.+'
compile 'com.google.Android.gms:play-services-cast:7.5.0'
}
Comment puis-je réparer ça? Je suppose que l'erreur se produit parce que j'utilise les services de Google Play dans le module et l'application. mais les versions sont différentes. est-ce que cela cause un problème?
J'avais un problème similaire et votre question m'a aidé à résoudre le mien et vous aidera probablement à résoudre le vôtre. Le problème est que vous avez défini:
dependencies {
...
compile 'com.google.Android.gms:play-services-cast:7.5.0'
}
et
dependencies {
...
compile 'com.google.Android.gms:play-services:7.0.+'
...
}
Depuis Google Services 7.5.0, si vous utilisez des modules individuels à partir de services de jeu, vous ne pouvez pas utiliser simultanément des services de jeu complets comme dépendance. La solution consiste à sélectionner uniquement les services dont vous avez besoin à la place du package complet, par exemple:
au lieu de
dependencies {
...
compile 'com.google.Android.gms:play-services:7.0.+'
...
}
utilisation
dependencies {
...
compile 'com.google.Android.gms:play-services-maps:7.0.+'
compile 'com.google.Android.gms:play-services-location:7.0.+'
compile 'com.google.Android.gms:play-services-gcm:7.0.+'
...
}
Aussi, je ne suis pas sûr, mais ce serait probablement une bonne idée d’utiliser la même version des services Google dans les deux config de gradles.
J'avais un problème similaire après avoir créé avec phonegap/cordova: Com.Android.dex.DexException: plusieurs fichiers dex définissent Lcom/google/Android/gms/internal/zzsk;
Je l'ai corrigé en éditant build.gradle (module Android), car j'avais 2 bibliothèques qui devraient avoir exactement la même version avec des numéros de version différents (8.4.0 et 9.2.1 dans mon cas)
dependencies{
....
//make sure are both same version (8.4.0 or 9.2.1 in my case)
compile 'com.google.Android.gms:play-services-gcm:9.2.1'
// this is the one I changed: compile 'com.google.Android.gms:play-services-location:8.4.0'
compile 'com.google.Android.gms:play-services-location:9.2.1' // it was 8.4.0
....
}
Les kits de développement SDK Android de Firebase ont maintenant des numéros de version indépendants, permettant à pour des mises à jour plus fréquentes et flexibles.
Mettez à jour toutes vos dépendances Firebase vers la dernière version (à compter du 2 mai 2018):
Firebase Core com.google.firebase:firebase-core:15.0.2
Ads com.google.firebase:firebase-ads:15.0.0
Analytics com.google.firebase:firebase-analytics:15.0.2
App Indexing com.google.firebase:firebase-appindexing:15.0.0
Authentication com.google.firebase:firebase-auth:15.1.0
Cloud Firestore com.google.firebase:firebase-firestore:16.0.0
Cloud Functions com.google.firebase:firebase-functions:15.0.0
Cloud Messaging com.google.firebase:firebase-messaging:15.0.2
Cloud Storage com.google.firebase:firebase-storage:15.0.2
Crash Reporting com.google.firebase:firebase-crash:15.0.2
Crashlytics com.crashlytics.sdk.Android:crashlytics:2.9.1
Invites com.google.firebase:firebase-invites:15.0.2
Performance Monitoring com.google.firebase:firebase-perf:15.1.0
Realtime Database com.google.firebase:firebase-database:15.0.0
Remote Config com.google.firebase:firebase-config:15.0.2
Note de publication: https://firebase.google.com/support/release-notes/Android
J'ai rencontré le même problème après avoir ajouté manuellement Firebase à mon application.
Pour moi, la solution changeait:
classpath 'com.google.gms:google-services:3.2.0'
à:
classpath 'com.google.gms:google-services:3.0.0'
au niveau de la racinebuild.gradlefichier.
Avait le même problème lors de l'intégration de firebase. Pour mon cas, cela était dû à une non concordance de version.
sur l'appli, j'avais:
ext {
PLAY_SERVICES_VERSION = '10.2.0'
}
dependencies {
compile "com.google.Android.gms:play-services-maps:$PLAY_SERVICES_VERSION"
compile "com.google.Android.gms:play-services-location:$PLAY_SERVICES_VERSION"
compile "com.google.Android.gms:play-services-places:$PLAY_SERVICES_VERSION"
compile 'com.google.firebase:firebase-database:10.0.1'
}
la dépendance firebase
a été ajoutée via le plugin Firebase intégré à Android Studio. Quand j'ai correspondu aux versions, cela a fonctionné.
J'ai eu ce problème récemment, la raison était la différence de version:
'com.google.firebase:firebase-ads:9.0.6'
'com.google.firebase:firebase-crash:11.0.2'
alors assurez-vous d'avoir la même version.
Mon projet est un projet cordova ionic1. J'ai passé une nuit et une matinée à résoudre ce problème. C’est ce que j’ai fait parce que j’avais des dépendances Firebase et des services Google: Accéder à ce fichier: Plateformes\Android\cordova-plugin-firebase\cordova-plugin-firebase\app-build.gradle
buildscript {
repositories {
mavenCentral()
}
dependencies {
// classpath 'com.google.gms:google-services:3.0.0'
// i changed the above line from 3.0.0 to 3.1.1
classpath 'com.google.gms:google-services:3.1.1'
}
}
repositories {
mavenCentral()
}
dependencies {
compile 'me.leolin:ShortcutBadger:1.1.4@aar'
//compile 'com.google.firebase:firebase-crash:+'
// i changed the above line from + to 11.0.2
compile 'com.google.firebase:firebase-crash:11.0.2'
}
Ensuite, accédez à ce fichier: Plates-formes\Android\project.properties À l’origine, j’avais cette
target=Android-26
Android.library.reference.1=CordovaLib
cordova.gradle.include.1=cordova-plugin-firebase/app-build.gradle
cordova.system.library.1=com.google.gms:google-services:+
cordova.system.library.2=com.google.firebase:firebase-core:+
cordova.system.library.3=com.google.firebase:firebase-messaging:+
cordova.system.library.4=com.google.firebase:firebase-crash:+
cordova.system.library.5=com.google.firebase:firebase-config:+
cordova.system.library.6=com.Android.support:support-v4:24.1.1+
cordova.system.library.7=com.google.Android.gms:play-services-auth:11.+
cordova.system.library.8=com.google.Android.gms:play-services-identity:11.+
Ensuite, j'ai commenté les services de Google car nous avions besoin de dépendances spécifiques et j'ai également placé les versions de firebase et gms sur le même numéro de version de 11.0.2so après que mon fichier ressemble à ceci
target=Android-26
Android.library.reference.1=CordovaLib
cordova.gradle.include.1=cordova-plugin-firebase/app-build.gradle
# cordova.system.library.1=com.google.gms:google-services:+
cordova.system.library.2=com.google.firebase:firebase-core:11.0.2
cordova.system.library.3=com.google.firebase:firebase-messaging:11.0.2
cordova.system.library.4=com.google.firebase:firebase-crash:11.0.2
cordova.system.library.5=com.google.firebase:firebase-config:11.0.2
cordova.system.library.6=com.Android.support:support-v4:24.1.1+
cordova.system.library.7=com.google.Android.gms:play-services-auth:11.0.2
cordova.system.library.8=com.google.Android.gms:play-services-identity:11.0.2
J'ai eu le même problème, mais le mien a été causé par firebase-ui dernière version 2.0.0. J'ai donc rétrogradé à la version 1.2.0 et ajouté la ligne suivante au fichier build.gradle au niveau du projet:
allprojects {
repositories {
jcenter()
// Add the following code
maven {
url 'https://maven.fabric.io/public'
}
}
}
Si quelqu'un d'autre rencontre ce problème dans Ionic, supprimer et rajouter la plateforme a fonctionné pour moi:
> ionic cordova rm platform Android
> ionic cordova add platform Android
Pour ceux qui se demandent comment résoudre ce problème pour plugins Apache Cordova, j'ai résolu ce problème en veillant à ce que tous les fichiers plugin.xml
incluent le même version majeure et mineure, mais avec la dernière révision comme ceci:
<framework src="com.google.firebase:firebase-auth:15.0.+" />
<framework src="com.google.firebase:firebase-messaging:15.0.+" />
Lors de l'utilisation de 15.0.0
ci-dessus, l'erreur com.Android.dex.DexException
a été générée pour une raison quelconque. En utilisant +
pour le numéro de révision (le plus récent), tout fonctionnait parfaitement avec cordova 7.1.0 et cordova-Android 6.3.0.
N'oubliez pas de supprimer et rajouter la plate-forme Android après avoir édité plugin.xml
à partir de plugins, sinon vos modifications ne seront pas appliquées du tout!
Aussi: Assurez-vous qu’UN seul fichier de grades l’applique, au cas où:
dependencies {
classpath 'com.Android.tools.build:gradle:+'
classpath 'com.google.gms:google-services:3.0.0'
}
J'avais ce problème et aucune des solutions ne fonctionnait. Ce qui a fonctionné pour moi a été d'ajouter ce plugin
cordova plugin add cordova-Android-play-services-gradle-release --save
puis dans les deux/plates-formes/Android/cordova-plugin-fcm/et/plates-formes/Android/cordova-plugin-open/replace
apply plugin: com.google.gms.googleservices.GoogleServicesPlugin
avec:
ext.postBuildExtras = {
apply plugin: com.google.gms.googleservices.GoogleServicesPlugin
}
J'avais aussi ce problème, j'ai essayé plusieurs façons de le résoudre. Ce qui a fonctionné pour moi, c’est de supprimer la ligne suivante de mon diplôme.
compile 'com.google.firebase:firebase-core:16.0.3'
Au début, j'ai à la fois firebase-core
et firebase-ml-vision
(ce dont j'avais besoin était seulement firebase-ml-vision
), comme suit.
compile 'com.google.firebase:firebase-ml-vision:17.0.0'
compile 'com.google.firebase:firebase-core:16.0.3'
Après avoir enlevé la ligne, je reçois un avertissement,
Avertissement: Le fichier de graduation d'application doit avoir une dépendance sur com.google.firebase: Firebase-core pour que les services Firebase fonctionnent en tant que prévu.
Mais, selon la documentation officielle, la dépendance de base peut être absente ( https://firebase.google.com/docs/ml-kit/Android/detect-faces ), elle peut donc être ignorée.
Si quelqu'un avait les mêmes problèmes que le mien, j'ai supprimé la dépendance firebase-core et cela a fonctionné à merveille.
dependencies{
implementation 'com.google.firebase:firebase-core:15.0.0'
implementation 'com.google.Android.gms:play-services-ads:15.0.0'
implementation 'com.google.firebase:firebase-crash:15.0.0'
implementation 'com.google.firebase:firebase-messaging:15.0.0'
}
à
dependencies{
implementation 'com.google.Android.gms:play-services-ads:15.0.0'
implementation 'com.google.firebase:firebase-crash:15.0.0'
implementation 'com.google.firebase:firebase-messaging:15.0.0'
}