生成签名的apk安卓程序时出现gcm错误

时间:2016-09-22 04:45:40

标签: java android apk

我在android studio中生成签名的apk时遇到错误

Error:Execution failed for task ':AppName:transformClassesWithJarMergingForRelease'.
com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: com/google/android/gms/common/internal/zzv$zza$zza.class

...摇篮

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.1"

defaultConfig {
    applicationId "myApp"
    minSdkVersion 14
    targetSdkVersion 23
    multiDexEnabled true
}

buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
    }
}
dexOptions {
    javaMaxHeapSize "2g"
}

compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_7
    targetCompatibility JavaVersion.VERSION_1_7
}

packagingOptions {
    exclude 'META-INF/DEPENDENCIES'
    exclude 'META-INF/NOTICE'
    exclude 'META-INF/LICENSE'
    exclude 'META-INF/LICENSE.txt'
    exclude 'META-INF/NOTICE.txt'
}
}

dependencies {
    compile 'org.altbeacon:android-beacon-library:2.1.4'
    compile project(':qRCodeReaderViewlib')
    compile project(':viewpagerindicator')
    compile 'com.android.support:support-v4:23.1.1'
    compile 'com.google.android.gms:play-services-maps:9.0.0'
    compile 'com.android.support:appcompat-v7:23.1.1'
    compile files('libs/android-query-full.0.26.7.jar')
    //compile files('libs/gcm.jar')
    compile files('libs/mint-4.4.0.jar')
    compile 'com.squareup.okhttp3:okhttp:3.2.0'
    compile 'com.android.support:multidex:1.0.1'
    compile 'com.google.firebase:firebase-messaging:9.4.0'
}
// Add to the bottom of the file
apply plugin: 'com.google.gms.google-services'

有任何帮助吗?提前谢谢..

2 个答案:

答案 0 :(得分:1)

您正在使用不同版本的播放服务。这通常最终会出现在error.change

compile 'com.google.android.gms:play-services-maps:9.0.0'

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

https://stackoverflow.com/a/38201741/3111083

答案 1 :(得分:1)

这是您的gradle中出现重复或传递依赖的情况。要检查复制的起源,请始终首先构造依赖关系树。

这是通过allDependencies gradle任务完成的。在Android Studio的右侧栏中,点击Gradle> app>任务> Android> androidDependencies。您的gradle控制台现在将以

的形式输出您的依赖树
|    +--- pm.tin.tincan.android:sectioned-recyclerview:1.0
|    +--- com.crashlytics.sdk.android:crashlytics:2.5.1
|    |    +--- io.fabric.sdk.android:fabric:1.3.5
|    |    +--- com.crashlytics.sdk.android:crashlytics-core:2.3.4
|    |    |    +--- io.fabric.sdk.android:fabric:1.3.5
|    |    |    \--- com.crashlytics.sdk.android:answers:1.3.1
|    |    |         \--- io.fabric.sdk.android:fabric:1.3.5
|    |    +--- com.crashlytics.sdk.android:beta:1.1.3
|    |    |    \--- io.fabric.sdk.android:fabric:1.3.5
|    |    \--- com.crashlytics.sdk.android:answers:1.3.1
|    |         \--- io.fabric.sdk.android:fabric:1.3.5
|    +--- com.google.android.gms:play-services-gcm:8.4.0
|    |    +--- com.google.android.gms:play-services-base:8.4.0
|    |    |    \--- com.google.android.gms:play-services-basement:8.4.0
|    |    \--- com.google.android.gms:play-services-measurement:8.4.0
|    |         \--- com.google.android.gms:play-services-basement:8.4.0
|    +--- de.hdodenhof:circleimageview:2.0.0

在此处,检查树中各处的库版本是否存在冲突。 一旦排序,您可以通过说

排除冲突的deps
compile("com.crashlytics.sdk.android:crashlytics:2.5.1") {
            transitive = true
            exclude group: "com.android.support" // Conflicting dep removed here
        }