Error:Execution failed for task ':app:transformClassesWithJarMergingForDebug'. > duplicate entry: com/google/android/gms/gcm/PendingCallback.class
Error:Execution failed for task ':app:transformClassesWithJarMergingForDebug'. > duplicate entry: com/google/android/gms/gcm/PendingCallback.class
该应用程序在 Android 6.0 的设备中正确编译,但在 phone 和 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 在 , and I also tried using the same version in all of the Google Play Services libs, as suggested by Benjamin at Android studio APK buil error transformClassesWithJarMergingForDebug 的建议尝试了 Build/Clean Project
。在我的例子中,对 com.google.android.gms:play-services
和 com.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?如果您能提供任何提示来修复此错误,我将不胜感激。谢谢。
解决方案是 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 a related article that may be helpful to explain the use of the Firebase JobDispatcher, but the official documentation is at https://github.com/firebase/firebase-jobdispatcher-android 找到了。
我在 Android 4.4.2、5.0.1、5.1.1 和 6.0 的设备上进行了测试。该应用程序现在可以为我正确编译。
该应用程序在 Android 6.0 的设备中正确编译,但在 phone 和 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 在 Build/Clean Project
。在我的例子中,对 com.google.android.gms:play-services
和 com.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?如果您能提供任何提示来修复此错误,我将不胜感激。谢谢。
解决方案是 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 a related article that may be helpful to explain the use of the Firebase JobDispatcher, but the official documentation is at https://github.com/firebase/firebase-jobdispatcher-android 找到了。
我在 Android 4.4.2、5.0.1、5.1.1 和 6.0 的设备上进行了测试。该应用程序现在可以为我正确编译。