2015-07-04 10 views
24

ottengo l'errore com.android.dex.DexException: Multiple dex files define Lcom/google/android/gms/internal/zzau; quando ho eseguito la mia applicazione I file Gradle sonofile DEX multiple definiscono lcom/google/android/GMS/interno/zzau

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

Come posso risolvere questo problema? Immagino che l'errore si verifichi perché utilizzo i servizi di google play sia nel modulo che nell'app. ma le versioni sono diverse. è questo che causa un problema?

+0

Ho un tale problema. Come potrei risolverlo? https://stackoverflow.com/questions/48630943/when-i-want-to-create-apk-in-the-android-studio-i-get-this-error –

risposta

24

Ho avuto un problema simile e la tua domanda mi ha aiutato a risolvere il mio e probabilmente ti aiuterà a risolvere il tuo. Il problema è che si è definito:

dependencies { 
... 
    compile 'com.google.android.gms:play-services-cast:7.5.0' 
} 

e

dependencies { 
... 
    compile 'com.google.android.gms:play-services:7.0.+' 
... 
} 

Poiché i servizi di Google 7.5.0, se si sta utilizzando moduli singoli da servizi di gioco non è possibile utilizzare i servizi di gioco intere come la dipendenza contemporaneamente . La soluzione è di scegliere solo i servizi di cui avete bisogno, invece di intero pacchetto ad esempio:

invece di

dependencies { 
... 
    compile 'com.google.android.gms:play-services:7.0.+' 
... 
} 

uso

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.+' 
... 
} 

Anche io non sono sicuro, ma probabilmente sarebbe una buona idea utilizzare la stessa versione di Google Services in entrambe le configurazioni gradle.

+5

Anche il problema potrebbe essere in diverse versioni di "com .google.android.gms "e" com.google.firebase " –

14

Ho avuto un problema simile dopo aver creato utilizzando phonegap/cordova: com.android.dex.DexException: più file dex definiscono Lcom/google/android/gms/internal/zzsk;

ho riparato modificando build.gradle (modulo Android), come ho avuto 2 librerie che dovrebbero avere la stessa versione esatta con diversi numeri di versione (8.4.0 e 9.2.1 nel mio caso)

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 
.... 
} 
+0

Ho usato 9.2.1 e 9.4.0 –

2

Ha avuto lo stesso problema durante l'integrazione di Firebase. Per il mio caso, è stato causato dalla mancata corrispondenza della versione.

sul Gradle app, ho avuto:

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 dipendenza firebase è stato aggiunto attraverso il plugin Firebase integrato in studio Android. Quando ho abbinato le versioni, ha funzionato.

0

Ho avuto lo stesso problema ma il mio è stato causato da firebase-ui versione più recente 2.0.0. Così ho declassato a 1.2.0 e aggiunto la seguente riga al file di progetto di livello build.gradle:

allprojects { 
    repositories { 
     jcenter() 

     // Add the following code 
     maven { 
      url 'https://maven.fabric.io/public' 
     } 
    } 
} 
1

ho avuto questo problema di recente, il motivo era la differenza di versione:

'com.google.firebase:firebase-ads:9.0.6' 

'com.google.firebase:firebase-crash:11.0.2' 

quindi assicuratevi hai la stessa versione.

0

Ho riscontrato lo stesso problema dopo l'aggiunta manuale di Firebase alla mia app.
Per me la soluzione stava cambiando:

classpath 'com.google.gms:google-services:3.2.0' 

a:

classpath 'com.google.gms:google-services:3.0.0' 

nella radice di livello build.gradle file.

Problemi correlati