android - 在模块中发现重复的类

标签 android gradle android-gradle-plugin

我正在开发一个多模块 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 中时才有效配置。您应该针对您在( implementationapi 、已弃用的 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/

相关文章:

java - 加速加密?

gradle - 为什么我在 Android Studio 中使用教程应用程序时会收到 "unsupported version of Gradle"错误?

android - CollapsingToolbarLayout 的不同 scrollFlags 之间的区别

java - 如何删除java android app目录中的所有文件?当前代码正在删除该文件夹

gradle - 使用 Kotlin DSL 构建 Fatjar 时出错

android - 如何使用 3.x.x Gradle 插件在 Android Studio 中选择模块的风格

android - 具有相同代码的多个 Android 应用程序的 Gradle 脚本(克隆应用程序)

android - 根据环境设置不同的application id是否需要发布到google play

android - 如何使用本地 aar 依赖?

android - 有没有机会让键盘显示在标签图标上