proversion
proversion

Reputation: 593

Build Failed when i try to run the app

I have the error like "Error:Execution failed for task ':app:transformClassesWithJarMergingForDebug'.

com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: com/google/android/gms/internal/zzpm$zza$zza.class"

What should i do to remove this error

gradle

apply plugin: 'com.android.application'


 android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"



defaultConfig {
    applicationId "com.example.user.merchant"
    minSdkVersion 15
    targetSdkVersion 23
    versionCode 1
    versionName "1.0"
    multiDexEnabled true
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
}

  dependencies {
   compile fileTree(include: ['*.jar'], dir: 'libs')
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.2.0'
   compile 'com.android.support:design:23.2.0'
   compile 'com.android.support:support-v4:23.2.0'
   compile 'com.android.volley:volley:1.0.0'
   compile 'com.google.android.gms:play-services-appindexing:8.4.0'
   compile 'com.google.android.gms:play-services-gcm:8.4.0'
    //compile files('libs/google-play-services.jar')

   }

Upvotes: 1

Views: 1302

Answers (3)

Alexis Duran
Alexis Duran

Reputation: 640

As @Vaiden says the issue was:

"It seems that you have at least one library already bundled with GMS"

Every time that you face a duplicate entry error run ./gradlew app:dependencies and make sure that there is no duplicated versions of a same module. For example: in my case I had:

compile 'com.google.android.gms:play-services-gcm:9.0.0'

When I tried to use firebase in my project I add it like:

compile 'com.google.firebase:firebase-core:9.+'
compile 'com.google.firebase:firebase-messaging:9.+'

That makes my app crash cause when I navigate to the: app > build > intermediates > exploded-aar > com.google.android.gms one of the folders (play-services-basement) pull a version 9.4.0 instead 9.0.0 so what I did was to unificate the versions by adding firebase like:

compile 'com.google.firebase:firebase-core:9.0.0'
compile 'com.google.firebase:firebase-messaging:9.0.0'

In theory you can solve this too by pushing the firebase to 9.4.0 instead.

The bottom line is to try to know which things are your dependencies introducing to the app and check "WHO" is introducing the same thing to the app, once you get there try to set a specific version of that duplicated dependency.

Upvotes: 5

Vaiden
Vaiden

Reputation: 16122

It seems that you have at least one library already bundled with GMS.

None of the dependencies stated in your gradle build file should have it, so the culprit might be a library jar file in your libs dir. So either you have something in your libs dir you shouldn't have put there, or a library that has GMS bundled inside of it.

Did you remember to delete libs/google-play-services.jar?

Upvotes: 0

abielita
abielita

Reputation: 13469

Based from this forum, try to change the gradle inside your C:\Program Files\Android\Android Studio\gradle\ to gradle-2.10. Also, it seems unlikely that a program that is designed to run on an Android device doesn't need all of the jars. Try removing some of them.

Check this related SO questions:

Upvotes: 0

Related Questions