在这种情况下如何解决java.util.zip.ZipException?

时间:2017-04-25 21:59:24

标签: java android gradle libraries

我正在尝试生成一个已签名的.APK但是我正在通过一个问题。我已经看到有关此错误的多个类似问题。我认为这是此错误的具体情况:

Error:Execution failed for task ':app:transformClassesWithJarMergingForProdRelease'.
> com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: com/google/android/gms/common/api/zzd.class

这是我的build.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 {
    jcenter()
    mavenCentral()
    maven { url 'https://maven.fabric.io/public' }
    maven { url "http://pyze.bintray.com/pyze-android" }
    maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
    maven { url 'https://jitpack.io' }
}

android {
    compileSdkVersion 25
    buildToolsVersion "25.0.2"
    defaultConfig {
        applicationId "myapp"
        minSdkVersion 16
        targetSdkVersion 25
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        vectorDrawables.useSupportLibrary = true
        multiDexEnabled = true
    }

    dexOptions {
        javaMaxHeapSize "4g"
    }

    lintOptions {
        checkReleaseBuilds false
        abortOnError false
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.android.support:multidex:1.0.1'
    compile 'com.android.support:appcompat-v7:25.3.1'
    compile ('com.android.support:design:25.3.1')

    compile('com.jakewharton:butterknife:8.5.1')
    compile('com.squareup.okhttp3:logging-interceptor:3.3.0')
    compile('com.squareup.retrofit2:retrofit:2.1.0')
    compile('com.squareup.retrofit2:converter-gson:2.1.0')
    compile('com.squareup.okhttp:okhttp:2.2.0')
    compile('com.squareup.okhttp:okhttp-urlconnection:2.2.0')
    compile('com.squareup.picasso:picasso:2.4.0')
    compile('net.danlew:android.joda:2.9.4.2')
    compile('com.michaelpardo:activeandroid:3.1.0-SNAPSHOT')
    compile('com.github.jkwiecien:EasyImage:2.0.2')
    compile('com.journeyapps:zxing-android-embedded:3.5.0')
    compile('com.pyze:PyzeLibrary:2.12.0')

    compile 'io.intercom.android:intercom-sdk-base:3.2.0'
    compile 'io.intercom.android:intercom-sdk-fcm:3.2.0'
    compile('com.facebook.android:facebook-android-sdk:4.22.0')
    compile('com.digits.sdk.android:digits:2.0.6@aar') {
        transitive = true;
    }
    compile('com.twitter.sdk.android:twitter:2.3.2@aar') {
        transitive = true;
    }
    compile('com.crashlytics.sdk.android:crashlytics:2.6.7@aar') {
        transitive = true;
    }
    compile('com.twitter.sdk.android:tweet-composer:2.3.1@aar') {
        transitive = true;
    }

    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    testCompile 'junit:junit:4.12'
    annotationProcessor('com.jakewharton:butterknife-compiler:8.5.1')
}

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

我试图找出使用此代码分析问题的问题:

./gradlew clean app:dependencies

结果是:

compile - Classpath for compiling the main sources.
+--- com.android.support:multidex:1.0.1
+--- com.android.support:appcompat-v7:25.3.1
|    +--- com.android.support:support-annotations:25.3.1
|    +--- com.android.support:support-v4:25.3.1
|    |    +--- com.android.support:support-compat:25.3.1
|    |    |    \--- com.android.support:support-annotations:25.3.1
|    |    +--- com.android.support:support-media-compat:25.3.1
|    |    |    +--- com.android.support:support-annotations:25.3.1
|    |    |    \--- com.android.support:support-compat:25.3.1 (*)
|    |    +--- com.android.support:support-core-utils:25.3.1
|    |    |    +--- com.android.support:support-annotations:25.3.1
|    |    |    \--- com.android.support:support-compat:25.3.1 (*)
|    |    +--- com.android.support:support-core-ui:25.3.1
|    |    |    +--- com.android.support:support-annotations:25.3.1
|    |    |    \--- com.android.support:support-compat:25.3.1 (*)
|    |    \--- com.android.support:support-fragment:25.3.1
|    |         +--- com.android.support:support-compat:25.3.1 (*)
|    |         +--- com.android.support:support-media-compat:25.3.1 (*)
|    |         +--- com.android.support:support-core-ui:25.3.1 (*)
|    |         \--- com.android.support:support-core-utils:25.3.1 (*)
|    +--- com.android.support:support-vector-drawable:25.3.1
|    |    +--- com.android.support:support-annotations:25.3.1
|    |    \--- com.android.support:support-compat:25.3.1 (*)
|    \--- com.android.support:animated-vector-drawable:25.3.1
|         \--- com.android.support:support-vector-drawable:25.3.1 (*)
+--- com.android.support:design:25.3.1
|    +--- com.android.support:support-v4:25.3.1 (*)
|    +--- com.android.support:appcompat-v7:25.3.1 (*)
|    +--- com.android.support:recyclerview-v7:25.3.1
|    |    +--- com.android.support:support-annotations:25.3.1
|    |    +--- com.android.support:support-compat:25.3.1 (*)
|    |    \--- com.android.support:support-core-ui:25.3.1 (*)
|    \--- com.android.support:transition:25.3.1
|         +--- com.android.support:support-annotations:25.3.1
|         \--- com.android.support:support-v4:25.3.1 (*)
+--- com.jakewharton:butterknife:8.5.1
|    +--- com.jakewharton:butterknife-annotations:8.5.1
|    |    \--- com.android.support:support-annotations:25.1.0 -> 25.3.1
|    +--- com.android.support:support-annotations:25.1.0 -> 25.3.1
|    \--- com.android.support:support-compat:25.1.0 -> 25.3.1 (*)
+--- com.squareup.okhttp3:logging-interceptor:3.3.0
|    \--- com.squareup.okhttp3:okhttp:3.3.0
|         \--- com.squareup.okio:okio:1.8.0
+--- com.squareup.retrofit2:retrofit:2.1.0
|    \--- com.squareup.okhttp3:okhttp:3.3.0 (*)
+--- com.squareup.retrofit2:converter-gson:2.1.0
|    +--- com.squareup.retrofit2:retrofit:2.1.0 (*)
|    \--- com.google.code.gson:gson:2.7
+--- com.squareup.okhttp:okhttp:2.2.0
|    \--- com.squareup.okio:okio:1.2.0 -> 1.8.0
+--- com.squareup.okhttp:okhttp-urlconnection:2.2.0
|    \--- com.squareup.okhttp:okhttp:2.2.0 (*)
+--- com.squareup.picasso:picasso:2.4.0 -> 2.5.2
+--- net.danlew:android.joda:2.9.4.2
|    \--- joda-time:joda-time:2.9.4
+--- com.michaelpardo:activeandroid:3.1.0-SNAPSHOT
+--- com.github.jkwiecien:EasyImage:2.0.2
|    +--- com.android.support:appcompat-v7:25.0.0 -> 25.3.1 (*)
|    \--- com.jakewharton.timber:timber:4.4.0
+--- com.journeyapps:zxing-android-embedded:3.5.0
|    +--- com.google.zxing:core:3.3.0
|    \--- com.android.support:support-v4:25.1.0 -> 25.3.1 (*)
+--- com.pyze:PyzeLibrary:2.12.0
|    +--- com.android.support:appcompat-v7:23.1.1 -> 25.3.1 (*)
|    +--- com.google.android.gms:play-services-gcm:9.6.1
|    |    +--- com.google.android.gms:play-services-base:9.6.1
|    |    |    +--- com.google.android.gms:play-services-basement:9.6.1 -> 10.2.1
|    |    |    |    \--- com.android.support:support-v4:24.0.0 -> 25.3.1 (*)
|    |    |    \--- com.google.android.gms:play-services-tasks:9.6.1 -> 10.2.1
|    |    |         \--- com.google.android.gms:play-services-basement:10.2.1 (*)
|    |    +--- com.google.android.gms:play-services-basement:9.6.1 -> 10.2.1 (*)
|    |    \--- com.google.android.gms:play-services-iid:9.6.1
|    |         +--- com.google.android.gms:play-services-base:9.6.1 (*)
|    |         \--- com.google.android.gms:play-services-basement:9.6.1 -> 10.2.1 (*)
|    +--- com.google.android.gms:play-services-ads:9.6.1
|    |    +--- com.google.android.gms:play-services-ads-lite:9.6.1
|    |    |    \--- com.google.android.gms:play-services-basement:9.6.1 -> 10.2.1 (*)
|    |    +--- com.google.android.gms:play-services-base:9.6.1 (*)
|    |    +--- com.google.android.gms:play-services-clearcut:9.6.1
|    |    |    +--- com.google.android.gms:play-services-base:9.6.1 (*)
|    |    |    \--- com.google.android.gms:play-services-basement:9.6.1 -> 10.2.1 (*)
|    |    +--- com.google.android.gms:play-services-basement:9.6.1 -> 10.2.1 (*)
|    |    \--- com.google.android.gms:play-services-gass:9.6.1
|    |         \--- com.google.android.gms:play-services-basement:9.6.1 -> 10.2.1 (*)
|    +--- com.google.firebase:firebase-messaging:9.6.1 -> 10.2.1
|    |    +--- com.google.android.gms:play-services-basement:10.2.1 (*)
|    |    +--- com.google.firebase:firebase-iid:10.2.1
|    |    |    +--- com.google.android.gms:play-services-basement:10.2.1 (*)
|    |    |    \--- com.google.firebase:firebase-common:10.2.1
|    |    |         +--- com.google.android.gms:play-services-basement:10.2.1 (*)
|    |    |         \--- com.google.android.gms:play-services-tasks:10.2.1 (*)
|    |    \--- com.google.firebase:firebase-common:10.2.1 (*)
|    \--- com.android.support:support-v4:23.1.1 -> 25.3.1 (*)
+--- io.intercom.android:intercom-sdk-base:3.2.0
|    +--- com.android.support:design:25.3.1 (*)
|    +--- com.android.support:appcompat-v7:25.3.1 (*)
|    +--- com.android.support:animated-vector-drawable:25.3.1 (*)
|    +--- com.android.support:support-vector-drawable:25.3.1 (*)
|    +--- com.android.support:support-v4:25.3.1 (*)
|    +--- com.android.support:support-annotations:25.3.1
|    +--- com.android.support:recyclerview-v7:25.3.1 (*)
|    +--- com.intercom:android-composer:1.0.2
|    \--- com.intercom:android-composer-gallery:1.0.2
|         \--- com.android.support:appcompat-v7:25.1.1 -> 25.3.1 (*)
+--- io.intercom.android:intercom-sdk-fcm:3.2.0
|    +--- io.intercom.android:intercom-sdk-base:3.2.0 (*)
|    \--- com.google.firebase:firebase-messaging:10.2.1 (*)
+--- com.facebook.android:facebook-android-sdk:4.22.0
|    +--- com.android.support:support-v4:25.0.0 -> 25.3.1 (*)
|    +--- com.android.support:appcompat-v7:25.0.0 -> 25.3.1 (*)
|    +--- com.android.support:cardview-v7:25.0.0
|    |    \--- com.android.support:support-annotations:25.0.0 -> 25.3.1
|    +--- com.android.support:customtabs:25.0.0
|    |    +--- com.android.support:support-compat:25.0.0 -> 25.3.1 (*)
|    |    \--- com.android.support:support-annotations:25.0.0 -> 25.3.1
|    \--- com.parse.bolts:bolts-android:1.4.0
|         +--- com.parse.bolts:bolts-tasks:1.4.0
|         \--- com.parse.bolts:bolts-applinks:1.4.0
|              \--- com.parse.bolts:bolts-tasks:1.4.0
+--- com.digits.sdk.android:digits:2.0.6
|    +--- com.squareup.retrofit2:retrofit-mock:2.0.2
|    |    \--- com.squareup.retrofit2:retrofit:2.0.2 -> 2.1.0 (*)
|    +--- com.twitter.sdk.android:twitter-core:2.3.0 -> 2.3.1
|    |    +--- com.google.code.gson:gson:2.6.1 -> 2.7
|    |    +--- com.squareup.retrofit2:converter-gson:2.0.2 -> 2.1.0 (*)
|    |    +--- com.squareup.okhttp3:okhttp:3.2.0 -> 3.3.0 (*)
|    |    +--- io.fabric.sdk.android:fabric:1.3.+ -> 1.3.16
|    |    \--- com.squareup.retrofit2:retrofit:2.0.2 -> 2.1.0 (*)
|    +--- io.fabric.sdk.android:fabric:1.3.16
|    \--- com.crashlytics.sdk.android:answers-shim:0.0.4
+--- com.twitter.sdk.android:twitter:2.3.2
|    +--- com.twitter.sdk.android:tweet-composer:2.3.1
|    |    +--- com.twitter:twitter-text:1.13.0
|    |    +--- io.fabric.sdk.android:fabric:1.3.14 -> 1.3.16
|    |    +--- com.twitter.sdk.android:twitter-core:2.3.0 -> 2.3.1 (*)
|    |    \--- com.squareup.picasso:picasso:2.5.2
|    +--- com.twitter.sdk.android:twitter-core:2.3.1 (*)
|    \--- com.twitter.sdk.android:tweet-ui:2.3.2
|         +--- com.android.support:support-v4:23.1.1 -> 25.3.1 (*)
|         +--- com.twitter.sdk.android:twitter-core:2.3.1 (*)
|         \--- com.squareup.picasso:picasso:2.5.2
+--- com.crashlytics.sdk.android:crashlytics:2.6.7
|    +--- com.crashlytics.sdk.android:beta:1.2.4
|    |    \--- io.fabric.sdk.android:fabric:1.3.16
|    +--- io.fabric.sdk.android:fabric:1.3.16
|    +--- com.crashlytics.sdk.android:answers:1.3.12
|    |    \--- io.fabric.sdk.android:fabric:1.3.16
|    \--- com.crashlytics.sdk.android:crashlytics-core:2.3.16
|         +--- io.fabric.sdk.android:fabric:1.3.16
|         \--- com.crashlytics.sdk.android:answers:1.3.12 (*)
+--- com.twitter.sdk.android:tweet-composer:2.3.1 (*)
\--- com.google.firebase:firebase-core:9.0.0
     \--- com.google.firebase:firebase-analytics:9.0.0
          +--- com.google.android.gms:play-services-basement:9.0.0 -> 10.2.1 (*)
          +--- com.google.firebase:firebase-common:9.0.0 -> 10.2.1 (*)
          \--- com.google.firebase:firebase-analytics-impl:9.0.0
               +--- com.google.android.gms:play-services-base:9.0.0 -> 9.6.1 (*)
               +--- com.google.android.gms:play-services-basement:9.0.0 -> 10.2.1 (*)
               +--- com.google.firebase:firebase-iid:9.0.0 -> 10.2.1 (*)
               \--- com.google.firebase:firebase-common:9.0.0 -> 10.2.1 (*)

可能会干扰此问题的另一个细节,我的IDE显示此消息:

  

所有com.android.support库必须使用完全相同的版本规范(混合版本可能导致运行时崩溃)。找到版本25.3.1,25.0.0。示例包括com.android.support:animated-vector-drawable:25.3.1和com.android.support:cardview-v7:25.0.0

我相信其中一些库在GMS版本方面相互冲突,但不幸的是我无法弄清楚哪些库以及如何解决这个问题。

提前谢谢

1 个答案:

答案 0 :(得分:1)

问题是您有几个使用不同版本的支持库的依赖项,这些依赖项与您为项目明确声明的版本不同。您需要将所有这些标准化为单个版本。理想情况下,您希望使用最新版本的支持库。

第一步是确保使用所有依赖项的最新版本。如果幸运的话,这可能会立即解决问题。

如果仍然出现类似错误,则需要覆盖支持库版本。您可以通过两种方式执行此操作:

  1. 从使用支持库的每个依赖项中手动排除传递依赖项。你应该有选择地这样做,而不是整个销售。例如

    compile 'com.jakewharton:butterknife:8.5.1', {
       exclude group: 'com.android.support'
    }
    
  2. 按照this answer中的说明覆盖支持图书馆版本。

  3. 如果您需要进一步的帮助,则应该显示错误消息,其中包含"所有com.android.support库必须使用完全相同的版本规范"。这将为您提供比" java.util.zip.ZipException更好的结果:重复条目:"。

相关问题