Java.util.zip.ZipException: 重复条目:com/google/android/gms/internal/zzbq.class。

6

我是一名新手Android开发者,目前正在开发一款Android应用程序。但是当我尝试运行应用程序时,出现了以下错误。

我已经进行了研究,但是无法解决这个错误。

错误截图

build.gradle文件

apply plugin: 'com.android.application'

android {
compileSdkVersion 23
buildToolsVersion "23.0.2"

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

repositories {
mavenCentral()
}
dependencies {
compile 'com.android.support:multidex:1.0.0'
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:support-v4:23.0.1'
compile 'com.android.support:design:23.0.1'
compile 'com.facebook.android:facebook-android-sdk:4.7.0'
compile 'com.squareup.picasso:picasso:2.4.0'
compile 'com.google.android.gms:play-services-auth:9.2.1'
compile 'com.google.android.gms:play-services:7.5.0'
}

感谢您的提前帮助。
5个回答

10

在我的情况下,这是因为

compile 'com.facebook.android:audience-network-sdk:4.+'

我把它修改成了这样:

 compile ('com.facebook.android:audience-network-sdk:4.+'){
        exclude group:"com.google.android.gms"
    }

再也没有问题了!


非常感谢你,兄弟。我已经尝试解决这个问题两天了。 - Dalvinder Singh
好巧妙的技巧!这对我来说就是这样,除了我正在添加的 firebase-ads 模块。 - zpr

5
可能的原因是您在gms中包含了两个不同版本。如果您已经包含了完整的包,则不需要再包含第二个“compile 'com.google.android.gms:play-services:7.5.0'' 。如果您只需要来自google的auth服务,则不要包含完整的包,否则它会超过65k个方法,并且会有重复的机会。 请包括以下内容:

"compile 'com.google.android.gms:play-services-auth:9.4.0'"

从您的代码中删除:

"compile 'com.google.android.gms:play-services-auth:9.2.1' compile 'com.google.android.gms:play-services:7.5.0'"

执行它并告诉我一声。

1
如果你正在使用Firebase,你应该阅读我的解决方案。在我的情况下,我开发了一个新的应用程序。这个新应用程序有广告,所以我把compile 'com.google.firebase:firebase-ads:11.0.4'放在compile 'com.google.firebase:firebase-core:11.0.4'之前。

但是你必须把所有内容都放在firebase-core之后,或者是关于版本号11.0.4必须在你使用的所有firebase模块上相同。

这个可以运行...确保你的核心先编译,然后再编译其他部分... - Siddharth Vaghasia

0

排除 com.google.android.gms 这个有问题的依赖包对我来说可以构建项目,但不幸的是应用程序在初始化期间会崩溃。对我来说解决方案是将所有的 firebase 依赖从 11.6.0 升级到 11.8.0,即:

- compile "com.google.android.gms:play-services-base:11.6.0"
- compile "com.google.firebase:firebase-core:11.6.0"
- compile "com.google.firebase:firebase-messaging:11.6.0"
- compile "com.google.firebase:firebase-analytics:11.6.0"
- compile "com.google.firebase:firebase-ads:11.6.0"

+ compile "com.google.android.gms:play-services-base:11.8.0"
+ compile "com.google.firebase:firebase-core:11.8.0"
+ compile "com.google.firebase:firebase-messaging:11.8.0"
+ compile "com.google.firebase:firebase-analytics:11.8.0"
+ compile "com.google.firebase:firebase-ads:11.8.0"

问题只在添加firebase-ads时出现,但这个解决了它。

0
请确保您正在使用相同的com.google.gms版本。 您可以从项目根目录运行下一个命令来查找所使用的版本:
./gradlew :<subproject>:dependencies

通常它是这样的:

./gradlew :app:dependencies 

分析后,您可以设置相同的版本或从某些模块中排除组,或者公开一个版本。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接