我正在试图弄清楚如何解决这个突发的重复条目问题:
Error:Gradle: Execution failed for task ':app:packageDebugClassesForMultiDex'.
> java.util.zip.ZipException: duplicate entry:com/google/android/gms/internal/zzqq$zza.class
我刚刚将Google Cloud Messaging版本从 8.1 增加到 8.3 。
dependencies {
compile 'com.google.android.gms:play-services-gcm:8.3.0'
}
任何指针?
由于
更新
我的build.gradle
android {
compileSdkVersion project.properties['compileSdkVersion'].toInteger()
buildToolsVersion project.properties['buildToolsVersion']
defaultConfig {
minSdkVersion project.properties['minSdkVersion']
targetSdkVersion project.properties['targetSdkVersion'].toInteger()
versionCode project.properties['versionCode'].toInteger()
versionName project.properties['versionName']
multiDexEnabled true
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
dependencies {
compile("org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version")
compile 'com.android.support:multidex:1.0.1'
compile 'com.google.android.gms:play-services-gcm:8.3.0'
}
更新2
类似的事情也发生在8.4,
Error:Gradle: Execution failed for task ':app:transformClassesWithJarMergingForFabricStagingDebug'.
> com.android.build.api.transform.TransformException: java.util.zip.ZipException:
duplicate entry: com/google/android/gms/internal/zzat.class
答案 0 :(得分:0)
原来,冲突是由我项目中的一个库引起的。它使用play-services-ads:8.1
,并且显然是使用Proguard进行缩小/混淆,它结束时包含一个zzat.class
文件,类似于play-services-basement:8.4.0
中包含的文件。
我试图解决此问题,迫使play-services-ads
在我的build.gradle
中使用较新版本进行此更改:
configurations.all {
resolutionStrategy {
force 'com.google.android.gms:play-services-ads:8.4.0'
}
}
这可能会在特定情况下产生副作用,但是,现在,它似乎是唯一的解决方案。