我正在开发一个多模块 Android 项目。以前编写的模块之一使用了 Paging library version-2,现在我正在尝试在另一个模块中使用新的 paging 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'
}
但仍然得到同样的错误。
最佳答案
fragment :
configurations {
runtime.exclude group: 'androidx.paging', module: 'paging-runtime'
}
仅当 v2 库包含在 runtime
中时才有效配置。您应该针对您在( implementation
、 api
、已弃用的 compile
等)中声明的 v2 库的任何配置调整配置。您可能正在使用
implementation
,所以试试这个 fragment :configurations {
implementation.exclude group: 'androidx.paging', module: 'paging-runtime-ktx'
}
有或没有-ktx
.或者使用这个 fragment ,无论您使用什么配置,它都应该工作:
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
关于android - 在模块中发现重复的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63157554/