2015-08-23 9 views
6

Ich habe diesen Fehler:Android Studio Ausführung fehlgeschlagen für Aufgabe ': App: packageAllDebugClassesForMultiDex'

Execution failed for task ':app:packageAllDebugClassesForMultiDex'. 
> java.util.zip.ZipException: duplicate entry: com/google/android/gms/internal/zzrf.class 

Ich möchte Google-Dienste zu meinem Projekt spielen hinzuzufügen, so habe ich diese Zeile in build.gradle Datei:

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

So hatte ich multidex und ich folgte android doc und fügte hinzu, dies in build.gradle aktivieren:

compile 'com.android.support:multidex:1.0.1' 

und

multiDexEnabled true 

Ich füge diese in android manifestieren:

<application 
... 
android:name="android.support.multidex.MultiDexApplication"> 

Aber ich habe den Fehler, den ich oben geschrieben habe. Ich habe eine Menge Fragen zu diesem Problem gefunden (app: packageAllDebugClassesForMultiDex), aber nicht mit diesem (doppelter Eintrag: com/google/android/gms/internal/zzrf.class).

Ich versuchte einige Lösungen wie einige Google-Bibliotheken zu entfernen, aber ich weiß nicht, was sich auf interne/zzrf.class bezieht.

Hier ist meine gradle Datei:

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 22 
    buildToolsVersion "22.0.1" 

    defaultConfig { 
     applicationId "fr.djey.testgoogleplus" 
     minSdkVersion 16 
     targetSdkVersion 22 
     versionCode 1 
     versionName "1.0" 
     multiDexEnabled true 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    compile 'com.android.support:appcompat-v7:22.2.1' 
    compile 'com.google.android.gms:play-services:7.8.0' 
    compile 'com.android.support:multidex:1.0.1' 
} 
+0

Gehen Sie zu Ihrem build.gradle und setzen Sie multiDexEnabled = true es passiert, weil Sie die 65.000 Methoden Java-Set überschreiten. Und es tritt normalerweise auf, wenn Sie einige Module zu Ihrer App hinzufügen –

+0

Danke für Ihre Antwort, aber es ist schon fertig, ich sagte es in der Frage – Jey10

+0

Welche Bibliothek haben Sie hinzugefügt, als alles begann? Oder fügen Sie Ihre build.gradle Datei ein –

Antwort

10

Ich konfrontiert dasselbe Problem. In meinem Fall habe ich eine eigene Android-Bibliothek verwendet, die von My Android App verwendet wird. Das bedeutet 1 Projekt mit 2 separaten Modulen, während das App-Modul vom Bibliotheksmodul abhängt. Beide unterstützen multidex. Die Ursache lag in der Inkonsistenz zwischen der Google Play Services-Version. Im App-Modul habe ich 7.8. + Benutzt und in der Bibliothek 8.1. +. Also habe ich gerade beide auf 8.1 + aktualisiert und das für mich behoben. Meine Antwort ist, alle libs zu überprüfen, von denen Sie abhängig sind, und möglicherweise verwendet eine von ihnen die google play services-Version unter Ihrer.

+1

Schließlich habe ich ein anderes Projekt erstellt und nur das gleiche tun: Putting Google Play Dienste und Multidex, das Problem nicht mehr angezeigt. Ich denke Ihre Antwort kann in einigen Fällen funktionieren, in anderen Fällen erstellen Sie einfach ein anderes Projekt. – Jey10

+1

Führen Sie einfach ./gradlew-Abhängigkeiten aus, um herauszufinden, welche Module in Konflikt stehende Versionen der Play-Dienste enthalten. –

1

Löschen Sie alle Dateien unter Buildordner des Projekts. In meinem Fall ist es die JAR-Datei des gesamten Google-Spielkonflikts mit der JAR-Datei des einzigen Anzeigenservice.

0

Wie ich in dem Kommentar gesagt habe: Ich habe ein anderes Projekt erstellt und habe genau die gleichen Dinge gemacht: Google Play Services und Multidex setzen, das Problem erschien nicht mehr.

Verwandte Themen