com.android.build.api.transform.TransformException:java.util.zip.ZipException:构建APK

时间:2017-06-17 18:17:59

标签: android gradle android-gradle multidex android-multidex

我知道这个问题被问了好几次。我已经尝试了3个多小时的各种解决方案,但没有一个能为我工作。

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

  

错误:任务执行失败   ':应用程序:transformClassesWithJarMergingForDebug&#39 ;.   com.android.build.api.transform.TransformException:java.util.zip.ZipException:重复条目:   COM /谷歌/机器人/克/内部/ zzcn $ zza.class

在添加firebase for FCM通知之前,我已成功完成构建。添加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'

1 个答案:

答案 0 :(得分:1)

问题是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'

with:

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'