当我尝试运行应用程序时,构建失败

时间:2016-04-17 08:25:27

标签: android google-cloud-messaging

我有错误之类的 “错误:任务执行失败':app:transformClassesWithJarMergingForDebug'。

  

com.android.build.api.transform.TransformException:java.util.zip.ZipException:重复条目:com / google / android / gms / internal / zzpm $ zza $ zza.class“

我该怎么做才能消除此错误

gradle这个

apply plugin: 'com.android.application'


 android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"



defaultConfig {
    applicationId "com.example.user.merchant"
    minSdkVersion 15
    targetSdkVersion 23
    versionCode 1
    versionName "1.0"
    multiDexEnabled true
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
}

  dependencies {
   compile fileTree(include: ['*.jar'], dir: 'libs')
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.2.0'
   compile 'com.android.support:design:23.2.0'
   compile 'com.android.support:support-v4:23.2.0'
   compile 'com.android.volley:volley:1.0.0'
   compile 'com.google.android.gms:play-services-appindexing:8.4.0'
   compile 'com.google.android.gms:play-services-gcm:8.4.0'
    //compile files('libs/google-play-services.jar')

   }

3 个答案:

答案 0 :(得分:5)

@Vaiden说问题是:

  

“您似乎至少有一个已与GMS捆绑在一起的库”

每次遇到重复输入错误时 ./gradlew app:dependencies ,并确保没有相同模块的重复版本。例如:在我的情况下,我有:

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

当我尝试在项目中使用firebase时,我将其添加为:

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

这导致我的应用程序崩溃导致当我导航到:app > build > intermediates > exploded-aar > 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来解决这个问题。

  

最重要的是尝试了解哪些内容是您的应用程序引入应用程序并检查“WHO”是否向应用程序引入了相同的内容,一旦您到达那里尝试设置该重复项的特定版本依赖性。

答案 1 :(得分:0)

根据此forum,尝试将C:\ Program Files \ Android \ Android Studio \ gradle \中的gradle更改为gradle-2.10。此外,设计为在Android设备上运行的程序似乎不太可能不需要所有的jar。尝试删除其中一些。

检查这个相关的SO问题:

答案 2 :(得分:0)

您似乎至少有一个已与GMS捆绑在一起的库。

你的gradle构建文件中所述的所有依赖项都没有它,因此罪魁祸首可能是libs目录中的库jar文件。所以要么你的libs目录中有东西你不应该放在那里,或者在其中捆绑了GMS的库。

您记得删除libs/google-play-services.jar吗?