4

我得到了可怕的java.lang.RuntimeException: java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException: Unable to merge dex错误。堆栈跟踪将根本原因显示为:

Caused by: com.android.dex.DexException: Multiple dex files define Landroid/support/v7/recyclerview/extensions/ListAdapter;
        at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:661)
        at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:616)
        at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:598)
        at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171)
        at com.android.dx.merge.DexMerger.merge(DexMerger.java:198)
        at com.android.builder.dexing.DexArchiveMergerCallable.call(DexArchiveMergerCallable.java:61)

根本原因是什么?

4

2 回答 2

10

最有可能的是,您正在尝试使用这两个依赖项:

implementation "android.arch.paging:runtime:1.0.0-alpha5"
implementation "com.android.support:recyclerview-v7:27.1.0"

冲突的类 ( )从 Pagingandroid.support.v7.recyclerview.extensions.ListAdapter移到...但仅具有或更高的 Paging 。加上支持库,您可以在两个地方获得相同的类。recyclerview-v7runtime1.0.0-alpha6runtime1.0.0-alpha527.1.0

相反,迁移到:

implementation "android.arch.paging:runtime:1.0.0-alpha6"
implementation "com.android.support:recyclerview-v7:27.1.0"
于 2018-03-02T20:29:57.727 回答
1

我有一个类似但不同的错误消息,似乎没有其他可疑的 gradle 依赖项可能与implementation 'com.android.support:recyclerview-v7:28.0.0'

多个dex文件定义Landroid/support/v7/widget/DefaultItemAnimator$6;

最后发现android-support-v7-recyclerview.jar这个项目的lib目录下已经有一个文件了。

删除此文件并与 gradle 同步,然后一切正常

于 2019-06-24T07:50:09.173 回答