com.android.build.api.transform.TransformException:java.util.zip.ZipException:重复条目:com / google / android / gms / common / api / zza.class

时间:2016-11-08 17:15:32

标签: android exception android-gradle build.gradle

以下是在应用模块中添加Firebase,gradle中的google服务和app模块中的google-services.json后出现的错误。

我的应用中有13个模块。我在所有模块中都有7个构建版本。我尝试将google-services.json放在app模块中,并将其放在app模块内的build variant文件夹中。我得到了同样的错误。我在一个构建版本中有通知功能。

我从应用程序中删除了gradle和google-services.json中与firebase相关的代码,它运行正常。

由于安全原因,我无法共享整个文件。

主app模块gradle:

dependencies {
   compile fileTree(include: ['*.jar'], dir: 'libs')
   testCompile 'junit:junit:4.12'
   debugCompile 'com.squareup.leakcanary:leakcanary-android:1.4-beta1'
   releaseCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.4-beta1'
   testCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.4-beta1'
   compile('com.crashlytics.sdk.android:crashlytics:2.6.2@aar') {
       transitive = true;
   }
   compile 'com.android.support:appcompat-v7:23.4.0'
   compile 'com.android.support:design:23.4.0'
   compile 'com.android.support:support-v4:23.4.0'
   compile 'com.jakewharton:butterknife:8.2.1'
   apt 'com.jakewharton:butterknife-compiler:8.2.1'
   compile 'com.github.hotchemi:permissionsdispatcher:2.0.7'
   apt 'com.github.hotchemi:permissionsdispatcher-processor:2.0.7'
   compile 'org.greenrobot:eventbus:3.0.0'
   compile 'com.android.support:multidex:1.0.1'

}

在应用程序gradle中:

dependencies {
    classpath 'com.android.tools.build:gradle:2.1.3'

    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
    classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'

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

:app:transformClassesWithJarMergingForSmePreDebug FAILED       FAILURE:构建因异常而失败。

* What went wrong:
Execution failed for task ':app:transformClassesWithJarMergingForSmePreDebug'.>
     

com.android.build.api.transform.TransformException:   java.util.zip.ZipException:重复条目:   COM /谷歌/机器人/克/普通/ API / zza.class

我在StackOverflow中为此问题提供了许多链接。没有解决我的问题。任何建议表示赞赏。

已编辑推送通知模块gradle:

dependencies {
   compile fileTree(dir: 'libs', include: ['*.jar'])
   testCompile 'junit:junit:4.12'
   compile 'com.android.support:appcompat-v7:23.4.0'
   //compile 'com.google.android.gms:play-services-gcm:9.0.0'

   compile 'com.google.firebase:firebase-messaging:9.8.0'
   //compile ('com.google.firebase:firebase-messaging:9.8.0') {
      //exclude group: 'com.google.android.gms'
   //}
}
apply plugin: 'com.google.gms.google-services'

1 个答案:

答案 0 :(得分:2)

此问题可能是因为您有重复的依赖项。一个是最新版本,另一个是旧版本。

你能做的是

  1. 检查您的应用依赖项。

    ./gradlew clean :app:dependencies
    
  2. 找到包含com.google.android.gms的第三方库。

  3. 从库中排除此组

    compile ('library') {
        exclude group: 'com.google.android.gms' 
    }
    
  4. 这可能是一个快速解决方案。但它不好!

    最佳解决方案应该是更新您的第三方库,他们的最新版本可能已经更新了他们的Google服务库。