You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android多模块项目如何将通用依赖统一配置在core模块Gradle文件中

问题根因

Gradle 的 implementation 关键字声明的依赖仅对当前模块可见,不会向上传递给依赖当前模块的其他模块。你当前 core 模块里的自定义代码、以及 core 声明的第三方依赖,都只能在 core 内部使用,app 模块依赖 core 时默认拿不到这些类,因此会报类解析失败的错误。

解决方案

1. 替换 core 模块的依赖声明关键字

把 core 模块 build.gradle 里需要暴露给上层模块使用的依赖,从 implementation 改成 api:

//Moshi
api "com.squareup.moshi:moshi-kotlin:$moshi_version"
//Retrofit
api "com.squareup.retrofit2:retrofit:$retrofit_version"
api "com.squareup.retrofit2:converter-moshi:$moshi_converter_version"
//okhttp
api "com.squareup.okhttp3:okhttp:$okhttp3_version"
api "com.squareup.okhttp3:logging-interceptor:$okhttp_loggin_interceptor"
//Koin
api "io.insert-koin:koin-android:$koin_version"
api "io.insert-koin:koin-androidx-viewmodel:$koin_viewmodel_version"

api 关键字声明的依赖会向上传递,app 模块只要保留原有 implementation project(":core") 配置,就能直接使用这些第三方库的类、以及 core 模块自己写的公共类(比如 BaseViewModel、BaseFragment),不需要再重复声明依赖。

2. 异常排查

如果修改完依赖声明后还是报 core 类找不到,依次检查以下配置:

  • 确认 core 模块是 Android 库类型:core 模块的 build.gradle 顶部必须声明 id 'com.android.library'(旧版 AGP 为 apply plugin: 'com.android.library'),不能是 application 类型,application 模块无法被其他模块依赖。
  • 确认根目录 settings.gradle 已引入 core 模块:必须存在 include ':core' 声明,缺失的话补上即可。
  • 重新同步 Gradle 配置:修改完所有 gradle 文件后,点击 Android Studio 右上角的「Sync Project with Gradle Files」按钮同步配置,也可以执行清理缓存重启操作确保配置生效。
  • 确认类包名和修饰符正确:检查导入的类包名和实际文件的包名完全一致,Kotlin 类默认是 public 修饰,不需要额外调整,如果是 Java 类要确保没有加 private 修饰符。

可选优化

如果部分依赖只有 core 模块内部使用、不需要开放给 app 模块,依然可以保留 implementation 声明,既不会污染上层依赖空间,也能加快编译速度。

内容的提问来源于stack exchange,提问作者Sergio

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.12 06:48:03