错误:任务“:app:transformClassesWithJarMergingForDebug”执行失败。 > 重复条目:com/google/android/gms/gcm/Pending

Posted

技术标签:

【中文标题】错误:任务“:app:transformClassesWithJarMergingForDebug”执行失败。 > 重复条目:com/google/android/gms/gcm/PendingCallback.class【英文标题】:Error:Execution failed for task ':app:transformClassesWithJarMergingForDebug'. > duplicate entry: com/google/android/gms/gcm/PendingCallback.class 【发布时间】:2017-11-27 18:59:06 【问题描述】:

该应用程序在 android 6.0 的设备中正确编译,但在 Android 4.4.2 的手机中编译不正确。当我尝试从 Android Studio 2.2.3 编译项目时,使用带有 Android 4.4.2 的设备,我收到此错误:

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

在我的build.gradle 文件中,我正在使用这个:

dependencies 
    ......
    compile 'com.google.android.gms:play-services:9.8.0'
    compile 'com.google.firebase:firebase-messaging:9.0.0'
    ......

我已经按照 SergioLucas 在 Error:Execution failed for task ':app:transformClassesWithJarMergingForDebug' 的建议尝试了 Build/Clean Project,并且我还尝试在所有 Google Play 服务库中使用相同的版本,正如 Benjamin 在 Android studio APK buil error transformClassesWithJarMergingForDebug 的建议。在我的情况下,对com.google.android.gms:play-servicescom.google.firebase:firebase-messaging 使用 9.8.0 并不能修复错误。有任何想法吗?谢谢。

编辑:

该应用在搭载 Android 5.1.1、5.0.1 和 6.0 的设备上可正确编译且零问题。我仅在装有 Android 4.4.2 的测试设备上遇到此错误。查看图片错误:

令我感兴趣的是,该错误仅在 Android 4.x 中发生,并且所有内容都可以在 Android 5.x 和 6.x 的设备上正常编译和运行。也许我需要一个特定的库来使东西与旧版本的 Android 兼容,在这种情况下是 Android 4.x?如果您能提供任何提示来解决此错误,我将不胜感激。谢谢。

【问题讨论】:

【参考方案1】:

解决方案是 sampyng 在https://github.com/firebase/firebase-jobdispatcher-android/issues/3 分享的代码。这是我在app/build.gradle 文件中的内容(产生错误的版本):

dependencies 
    .........
    compile 'com.google.android.gms:play-services:9.8.0'
    compile 'com.google.firebase:firebase-messaging:9.0.0'
    .........
    compile 'com.firebase:firebase-jobdispatcher:0.6.0'

解决方案是用

替换 compile 'com.firebase:firebase-jobdispatcher:0.6.0'
compile ("com.firebase:firebase-jobdispatcher-with-gcm-dep:0.6.0") 
    exclude module: "play-services-gcm"

修复错误的代码的最终版本是:

dependencies 
    .........
    compile 'com.google.android.gms:play-services:9.8.0'
    compile 'com.google.firebase:firebase-messaging:9.0.0'
    .........
    compile ("com.firebase:firebase-jobdispatcher-with-gcm-dep:0.6.0") 
        exclude module: "play-services-gcm"
    

我还在https://medium.com/wiselteach/firebase-jobdispatcher-androidmonk-3e6d729ed9ce找到了一篇相关文章,可能有助于解释Firebase JobDispatcher的使用,但官方文档在https://github.com/firebase/firebase-jobdispatcher-android。

我在搭载 Android 4.4.2、5.0.1、5.1.1 和 6.0 的设备上进行了测试。该应用程序现在可以为我正确编译。

【讨论】:

以上是关于错误:任务“:app:transformClassesWithJarMergingForDebug”执行失败。 > 重复条目:com/google/android/gms/gcm/Pending的主要内容,如果未能解决你的问题,请参考以下文章

任务发送至错误打印机

当我使用发送邮件任务时,SSIS 包显示错误

Visual Studio 错误:“无法激活后台任务。后台任务激活失败。”

我收到以下错误:[GraphQL 错误]:消息:任务

Android错误:错误:任务':app:transformClassesWithDexForDebug'的执行失败

错误:打字稿任务检测没有为以下配置贡献任务