web-dev-qa-db-fra.com

Plusieurs fichiers dex définissent Lcom/google/Android/gms/internal/zzau

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?

40
Tchinmai

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.

29
Krystian P.

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
....
}
16
rafahoro

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

5
Gurjap singh

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.

4
Roses

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é.

3
Irshu

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.

2
Ege Kuzubasioglu

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
1
Nyola Mike

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'
        }
    }
}
1
Darush

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
0
ajcurtis

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'
}
0
andreszs

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
}
0
marshy101

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.

0
Rurouni

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'
}
0
Irshad P I