【问题标题】:Error converting bytecode to dex-Android将字节码转换为 dex-Android 时出错
【发布时间】:2017-06-23 12:28:47
【问题描述】:

使用以下依赖项

'com.google.firebase:firebase-messaging:10.2.4'
'com.android.support:multidex:1.0.1'

顶级构建文件

classpath 'com.android.tools.build:gradle:3.0.0-alpha4'
classpath 'com.google.gms:google-services:3.1.0'

Gradle 4.0 版

Android Studio 3.0 Canary4

运行应用时出现以下错误

Information:Gradle tasks [:app:assembleDebug]
Error:Error converting bytecode to dex:
Cause: com.android.dex.DexException: Multiple dex files define Lcom/google/firebase/iid/zzg;
Error:com.android.dex.DexException: Multiple dex files define Lcom/google/firebase/iid/zzg;
Error:  at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:608)
Error:  at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:563)
Error:  at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:545)
Error:  at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:167)
Error:  at com.android.dx.merge.DexMerger.merge(DexMerger.java:194)
Error:  at com.android.builder.dexing.DexArchiveMergerCallable.mergeDexes(DexArchiveMergerCallable.java:66)
Error:  at com.android.builder.dexing.DexArchiveMergerCallable.call(DexArchiveMergerCallable.java:54)
Error:  at com.android.builder.dexing.DexArchiveMergerCallable.call(DexArchiveMergerCallable.java:37)
Error:  at java.util.concurrent.ForkJoinTask$AdaptedCallable.exec(ForkJoinTask.java:1424)
Error:  at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
Error:  at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
Error:  at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)
Error:  at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
Error:Execution failed for task ':app:transformDexArchiveWithDexMergerForDebug'.
> com.android.build.api.transform.TransformException: com.android.dex.DexException: Multiple dex files define Lcom/google/firebase/iid/zzg;
Information:BUILD FAILED in 16s
Information:16 errors
Information:0 warnings
Information:See complete output in console

请帮忙。

【问题讨论】:

  • 您的一个(或多个)依赖项使用不同版本的 Firebase 依赖项。
  • 感谢@GergelyKőrössy,我正在混合版本 10.2.4 和 11.0.1,现在可以使用了。
  • 没问题。那我应该添加它作为答案吗?
  • @GergelyKőrössy,是的,继续。

标签: android android-studio firebase firebase-cloud-messaging android-multidex


【解决方案1】:

当两个依赖项使用具有不同版本号的相同依赖项时,会发生此错误。在这种情况下,您的一个依赖项使用具有不同版本的 Firebase。

您可以通过运行 gradle app:dependencies 来检查您的依赖关系树(或者,如果您有一个包装器,通常用于 Android Studio 项目,gradlew app:dependencies)其中app 是您要检查的模块的名称。

【讨论】:

  • 谢谢@Gergely Kőrössy,这正是我的错误
  • @Geob 如果对您有用,请您接受答案吗?
猜你喜欢
  • 2016-10-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-02
  • 1970-01-01
  • 2018-04-09
  • 2017-02-27
相关资源
最近更新 更多