android - com.android.build.api.transform.TransformException : java. util.zip.ZipException:构建 APK 时重复条目

标签 android gradle android-gradle-plugin android-multidex

我知道这个问题被问过好几次了。我已经尝试了 3 个多小时,找到了各种解决方案,但没有一个对我有用。

当我运行该应用程序时,它运行良好,但是当我尝试构建 APK 时,出现以下错误:

Error:Execution failed for task ':app:transformClassesWithJarMergingForDebug'. com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: com/google/android/gms/internal/zzcn$zza.class

在为 FCM 通知添加 firebase 之前,我已成功构建。加了FCM后dex报错,只好加了multidex的支持。我也在使用 YouTube 播放器 jar 文件。

这是我的 Gradle 文件:

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'

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


android {
    compileSdkVersion 25
    buildToolsVersion "25.0.3"
    defaultConfig {
        applicationId "com.sample.application"
        minSdkVersion 15
        targetSdkVersion 25
        versionCode 1
        versionName "1.0"
        multiDexEnabled true
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    compile('com.crashlytics.sdk.android:crashlytics:2.6.8@aar') {
        transitive = true;
    }
    compile files('libs/YouTubeAndroidPlayerApi.jar')
    compile 'com.android.support:appcompat-v7:25.3.1'
    compile 'com.android.support:design:25.3.1'
    compile 'com.android.support.constraint:constraint-layout:1.0.2'
    compile 'com.android.support:support-v4:25.3.1'
    compile 'com.squareup.retrofit2:retrofit:2.3.0'
    compile 'com.squareup.retrofit2:converter-gson:2.0.0'
    compile 'com.squareup.picasso:picasso:2.5.2'
    compile 'com.facebook.android:audience-network-sdk:4.+'
    compile 'com.google.firebase:firebase-messaging:10.0.1'
    compile 'com.android.support:multidex:1.0.1'
    testCompile 'junit:junit:4.12'
}

apply plugin: 'com.google.gms.google-services'

最佳答案

问题是 com.facebook.android:audience-network-sdk 具有依赖项:play-services-ads:8.4.010.0.1 版本

替换:

compile 'com.facebook.android:audience-network-sdk:4.+'
compile 'com.google.firebase:firebase-messaging:10.0.1'

与:

compile ('com.facebook.android:audience-network-sdk:4.+'){
    exclude group: "com.google.android.gms"
}
compile 'com.google.android.gms:play-services-ads:10.0.1'
compile 'com.google.firebase:firebase-messaging:10.0.1'

关于android - com.android.build.api.transform.TransformException : java. util.zip.ZipException:构建 APK 时重复条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44607924/

相关文章:

android - 获取语​​速()? (或如何判断当前设置的 TTS 速率)

java - 如何等待 sendBroadcast 完成

gradle - 如何使用 Gradle Kotlin-dsl 添加新配置

android - Android 8 上的 INSTALL_FAILED_NO_MATCHING_ABIS 错误

android - 当 80% 大小归因于第三方库时,如何减少 Apk 大小?

android - Android 中复杂的自定义按钮状态

java - android.content.res.Resources$NotFoundException : String resource ID #0x0

android - 排行榜仍需要BaseGameUtils吗?

java - 创建 Gradle 设置以在 Jitpack 上发布源代码的依赖关系? (等级 5.6.2)

android - 无法将 Firebase 版本更新到 11.4.2