Android Studio中Multiplatform模块A无法调用模块B类的问题咨询
Kotlin Multiplatform模块间调用及重复依赖问题解决
核心结论
Kotlin Multiplatform(KMM)完全支持一个Multiplatform模块调用另一个Multiplatform模块,这是KMM模块化开发的标准实践。
重复添加依赖的解决步骤
检查模块A的依赖配置
打开模块A的build.gradle.kts(或.gradle)文件,查看sourceSets下的依赖声明:sourceSets { val commonMain by getting { dependencies { implementation(project(":moduleB")) // 确认是否已手动添加该依赖 } } }如果已经在
commonMain(或对应平台的sourceSet)中手动添加了模块B的依赖,Android Studio通过模块设置再次添加时就会重复写入。此时需删除重复条目,仅保留一份在共享的commonMain块中(若模块B的代码是跨平台共享的)。验证模块B的Multiplatform配置
确保模块B的build.gradle.kts正确声明为Multiplatform模块,示例配置如下:plugins { kotlin("multiplatform") } kotlin { // 声明所需目标平台 android() iosX64() iosArm64() sourceSets { val commonMain by getting val androidMain by getting val iosX64Main by getting val iosArm64Main by getting val iosMain by creating { dependsOn(commonMain) iosX64Main.dependsOn(this) iosArm64Main.dependsOn(this) } } }不完整的Multiplatform配置会导致Android Studio无法正确识别依赖关系,进而触发重复添加的问题。
确认settings.gradle配置
检查项目根目录的settings.gradle.kts(或.gradle),确保两个模块都已正确包含:include(":moduleA") include(":moduleB")若模块存在嵌套结构,需填写完整路径(如
:features:moduleB)。彻底清理Gradle缓存
- 删除项目根目录的
.gradle文件夹,以及各模块下的build文件夹 - 执行终端命令强制刷新依赖:
# Mac/Linux ./gradlew clean build --refresh-dependencies # Windows gradlew clean build --refresh-dependencies
- 删除项目根目录的
匹配Android Studio与Kotlin插件版本
确保使用的Android Studio版本(推荐Arctic Fox及以上)和Kotlin插件版本完全一致,版本不匹配可能引发依赖同步的兼容性bug。
内容的提问来源于stack exchange,提问作者Jorge Kleber
相关产品推荐
相关产品推荐

