Android Studio:错误:任务执行失败':app:transformClassesWithJarMergingForRelease'

时间:2016-09-17 17:20:10

标签: java android android-studio build google-play-services

我正在尝试构建我的项目的签名Apk,我收到以下错误:

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

当我选择调试版本类型时,我没有错误,一切正常。我搜索了一段时间来解决这个问题,但我没有发现任何有用的东西。

我的build.gradle:

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

android {
compileSdkVersion 24
buildToolsVersion "24.0.1"
defaultConfig {
    applicationId "com.danielsous.demos"
    minSdkVersion 14
    targetSdkVersion 24
    multiDexEnabled true
}
buildTypes {
    release {
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
    }
}
productFlavors {
}

}


dependencies {
compile files('libs/scanditsdk-android-4.7.5.jar')
compile 'com.android.support:support-v4:24.2.1'
compile 'com.github.attenzione:android-ColorPickerPreference:e3aa301016'
compile 'com.google.firebase:firebase-messaging:9.4.0'
compile 'com.google.code.gson:gson:2.7'
}

另一个build.gradle:

// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
    jcenter()
}
dependencies {
    classpath 'com.android.tools.build:gradle:2.1.3'
    classpath 'com.google.gms:google-services:3.0.0'
}
}

allprojects {
repositories {
    jcenter()
    maven {
        url "https://jitpack.io"
    }
}
}

2 个答案:

答案 0 :(得分:1)

"您似乎至少有一个已与GMS捆绑的图书馆" 每次遇到重复输入错误时都会运行./gradlew app:dependencies并确保没有相同模块的重复版本。例如:在我的情况下,我有:

compile 'com.google.android.gms:play-services-gcm:9.0.0'
When I tried to use firebase in my project I add it like:

compile 'com.google.firebase:firebase-core:9.+'
compile 'com.google.firebase:firebase-messaging:9.+'

当我导航到:app&gt;时,这会导致我的应用崩溃构建&gt; <中间体>爆炸的aar&gt; com.google.android.gms其中一个文件夹(play-services-basement)提取版本9.4.0而不是9.0.0所以我所做的是通过添加firebase来解析版本,如:

compile 'com.google.firebase:firebase-core:9.0.0'
compile 'com.google.firebase:firebase-messaging:9.0.0'

理论上你可以通过将firebase推到9.4.0来解决这个问题。

答案 1 :(得分:0)

我有一个库和一个由aar文件制作的第二个库,其中包含多个具有相同名称的资源(具有相同名称的pngs文件,具有相同ID的字符串,具有相同文件的布局)。删除aar库修复了我的问题