为什么我得到“多个dex文件定义Landroid / support / v7 / recyclerview / extensions / ListAdapter”

问题描述 投票:3回答:1

我得到了可怕的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)

根本原因是什么?

android android-recyclerview android-architecture-components android-architecture-lifecycle
1个回答
10
投票

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

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

冲突的阶级(android.support.v7.recyclerview.extensions.ListAdapter)从Paging recyclerview-v7转移到runtime ...但只有1.0.0-alpha6或更高的Paging runtime。使用1.0.0-alpha5,再加上支持库的27.1.0,您可以在两个地方获得相同的课程。

相反,迁移到:

implementation "android.arch.paging:runtime:1.0.0-alpha6"
implementation "com.android.support:recyclerview-v7:27.1.0"
© www.soinside.com 2019 - 2024. All rights reserved.