我正在从事一个多模块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'
}
但仍然出现相同的错误。
答案 0 :(得分:0)
片段:
configurations {
runtime.exclude group: 'androidx.paging', module: 'paging-runtime'
}
只有在 runtime
配置中包含 v2 库时才有效。您应该针对您在(implementation
、api
、已弃用的 compile
等)中声明的任何配置调整配置。
您可能正在使用 implementation
,所以试试这个片段:
configurations {
implementation.exclude group: 'androidx.paging', module: 'paging-runtime-ktx'
}
有或没有-ktx
。
或者使用这个片段,不管你使用什么配置它都可以工作:
configurations.all {
exclude group: 'androidx.paging', module: 'paging-runtime-ktx'
}