在模块中找到重复的类

时间:2020-07-29 15:53:56

标签: android gradle android-gradle-plugin

我正在从事一个多模块Android项目。以前编写的模块之一使用了Paging库版本2,现在我试图在另一个模块中使用新的分页v3库,但是出现此错误。

Duplicate class androidx.paging.LivePagedListKt found in modules jetified-paging-runtime-ktx-2.1.2-runtime.jar (androidx.paging:paging-runtime-ktx:2.1.2) and paging-runtime-3.0.0-alpha03-runtime.jar (androidx.paging:paging-runtime:3.0.0-alpha03)

模块层次结构是这样的:

       app:
   /         \
module-A    module-B
(uses v2)   (uses v3)

我在app模块build.gradle中添加了模块A和模块B的依赖关系

implementation project(path: ':module-A')
implementation project(path: ':module-B')

只要在不同的模块中使用了不同的版本,有什么办法可以在同一项目中使用同一库的不同版本。

到目前为止尝试过的解决方案:

我浏览了类似的答案,并将此行添加到应用程序级别的build.gradle文件中

configurations {
    runtime.exclude group: 'androidx.paging', module: 'paging-runtime'
}

但仍然出现相同的错误。

1 个答案:

答案 0 :(得分:0)

片段:

configurations {
    runtime.exclude group: 'androidx.paging', module: 'paging-runtime'
}

只有在 runtime 配置中包含 v2 库时才有效。您应该针对您在(implementationapi、已弃用的 compile 等)中声明的任何配置调整配置。

您可能正在使用 implementation,所以试试这个片段:

configurations {
    implementation.exclude group: 'androidx.paging', module: 'paging-runtime-ktx'
}

有或没有-ktx

或者使用这个片段,不管你使用什么配置它都可以工作:

configurations.all {
    exclude group: 'androidx.paging', module: 'paging-runtime-ktx'
}

来源:https://docs.gradle.org/current/userguide/dependency_downgrade_and_exclude.html#sec:excluding-transitive-deps