Jey10
Jey10

Reputation: 681

Android studio Execution failed for task ':app:packageAllDebugClassesForMultiDex'

I have this error :

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

I want to add google play services to my project so i put this line in build.gradle file :

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

So I had to enable multidex and I followed android doc, adding this in build.gradle :

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

and

multiDexEnabled true

I add this in android manifest :

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

But I have the error I wrote above. I've found a lot of questions relative to this problem (app:packageAllDebugClassesForMultiDex) but not with that (duplicate entry: com/google/android/gms/internal/zzrf.class).

I tried some solutions like remove some google libraries but I don't know what refers to internal/zzrf.class.

Here is my gradle file :

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

Upvotes: 6

Views: 6081

Answers (3)

Jey10
Jey10

Reputation: 681

As I said in the comment : I created another project and just did the same things : putting google play services and multidex, the problem didn't appear anymore.

Upvotes: 0

michael
michael

Reputation: 3945

I faced same problem. In my case I used home made Android library used by My Android app. Which means 1 project with 2 separate modules, while the app module depends on the library module. Both have support of multidex. The root cause was inconsistency between google play services version. In the app module I used 7.8.+ and in the library I used 8.1.+. So I just updated both to same 8.1.+ and that fixed for me. So my answer is to check all the libs you depend on and may 1 of them using google play services version below yours.

Upvotes: 10

Tanapruk Tangphianphan
Tanapruk Tangphianphan

Reputation: 803

Delete all files under build folder of that project. In my case, it is the jar file of the whole google play conflict with the jar file of only ads service.

Upvotes: 1

Related Questions