Java.util.zip.ZipException: Firebase存在重复条目

6

我正在使用Firebase构建一个应用程序,但是遇到了重复类错误。我已经检查了所有依赖项,但是无法确定我在哪里有两个版本的Firebase库。错误信息如下:

执行任务“:app:transformClassesWithJarMergingForDebug”失败。

com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: com/google/firebase/iid/zzb$1.class

buildscript {
    repositories {
        maven { url 'https://maven.fabric.io/public' }
    }

    dependencies {
        classpath 'io.fabric.tools:gradle:1.+'
    }
}
apply plugin: 'com.android.application'
apply plugin: 'io.fabric'
apply plugin: 'com.google.gms.google-services'

android {
    compileSdkVersion 25
    buildToolsVersion '24.0.3'
    defaultConfig {
        applicationId "com.android.palmtickle"
        minSdkVersion 14
        targetSdkVersion 25
        versionCode 1
        versionName "1.0"
        //Enabling multiDex support.
        multiDexEnabled true
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}
repositories {
    mavenCentral()
    maven {
        url 'http://dl.bintray.com/amulyakhare/maven'
    }
    maven { url 'https://maven.fabric.io/public' }
}

dependencies {
    compile('com.digits.sdk.android:digits:2.0.6@aar') {
        transitive = true;
    }

    //support and app compatibility libs
    compile 'com.android.support:appcompat-v7:25.3.0'
    compile 'com.android.support:design:25.3.0'
    compile 'com.android.support:cardview-v7:25.3.0'
    compile 'com.android.support:recyclerview-v7:25.3.0'
    compile 'com.android.support:support-v4:25.3.0'

    compile 'com.google.code.gson:gson:2.7'
    compile 'com.squareup.retrofit:retrofit:1.9.0'
    compile 'com.squareup.picasso:picasso:2.5.2'
    compile 'de.hdodenhof:circleimageview:2.0.0'
    compile 'com.amulyakhare:com.amulyakhare.textdrawable:1.0.1'
    compile 'com.wdullaer:materialdatetimepicker:2.1.1'

    //entries related to firebase
    compile 'com.google.firebase:firebase-auth:10.2.1'
    compile 'com.google.firebase:firebase-database:10.2.1'

    compile 'com.google.guava:guava-base:r03'
    compile 'com.yalantis:ucrop:2.2.0-native'
}

我通常会在Android Studio中搜索重复的文件来解决这类错误。当我在Android Studio中搜索class zzb时,我得到了一个含有所有其他10.2.1 firebase classes的jar包firebase-iid-9.0.0。我无法找出哪个依赖项注入了这个firebase-iid-9.0.0 jar包?有什么想法吗?


1
请查看我的答案,获取完整的gradle依赖项 - http://stackoverflow.com/questions/42945613/how-to-find-out-which-library-includes-which-support-library-version/42945708#42945708 - user2756345
2个回答

9
尝试将buildToolsVersion升级为25.0.2

今天我遇到了同样的问题,我尝试使用
compile 'com.google.firebase:firebase-core:10.2.1'
compile 'com.google.firebase:firebase-messaging:10.2.1'

清理项目并重新构建项目
一切都很好

检查每个模块的支持库版本是否为25.3.0,并确保所有Firebase模块都是10.2.1。


似乎我缺少Firebase核心库:'com.google.firebase:firebase-core:10.2.1'。我不知道这个分析库是否必要?我仍然怀疑这个核心库是否必须拥有。 - Mahendra Chhimwal
@MahendraChhimwal 请查看设置页面。这不是强制性的,但强烈建议您这样做。https://firebase.google.com/docs/android/setup - Gabriele Mariotti
@MahendraChhimwal,是的,一些分析功能需要核心支持,例如删除时间、安装时间、首次打开、会话开始等,在您的Firebase仪表板→分析→事件中。 - Angus
我爱你。它适用于我的错误:执行任务 ':app:transformClassesWithJarMergingForDebug' 失败。
com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: com/google/firebase/iid/zzb$1.class
- moralejaSinCuentoNiProverbio

7
对于我来说,这是与使用Google Play服务库和Firebase库的版本号相关的依赖关系问题。使用以下命令查看依赖树:
gradlew :app:dependencies

输出:

输入图像描述

检查您的库版本。 这里“ ->”左侧的版本是请求的版本,“ ->”右侧的版本是gradle选择的版本。

因此,我在应用程序级别的build.gradle文件中将google play服务库版本和firebase库版本更新为11.0.1。

compile "com.google.android.gms:play-services-location:11.0.1"
compile "com.google.android.gms:play-services-base:11.0.1"
compile "com.google.android.gms:play-services-maps:11.0.1"   
compile 'com.google.firebase:firebase-crash:11.0.1'
compile 'com.google.firebase:firebase-core:11.0.1'

您可以在这里查看Google Play服务库的版本。


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