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

Android Studio中Multiplatform模块A无法调用模块B类的问题咨询

Kotlin Multiplatform模块间调用及重复依赖问题解决

核心结论

Kotlin Multiplatform(KMM)完全支持一个Multiplatform模块调用另一个Multiplatform模块,这是KMM模块化开发的标准实践。

重复添加依赖的解决步骤

  1. 检查模块A的依赖配置
    打开模块A的build.gradle.kts(或.gradle)文件,查看sourceSets下的依赖声明:

    sourceSets {
        val commonMain by getting {
            dependencies {
                implementation(project(":moduleB")) // 确认是否已手动添加该依赖
            }
        }
    }
    

    如果已经在commonMain(或对应平台的sourceSet)中手动添加了模块B的依赖,Android Studio通过模块设置再次添加时就会重复写入。此时需删除重复条目,仅保留一份在共享的commonMain块中(若模块B的代码是跨平台共享的)。

  2. 验证模块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无法正确识别依赖关系,进而触发重复添加的问题。

  3. 确认settings.gradle配置
    检查项目根目录的settings.gradle.kts(或.gradle),确保两个模块都已正确包含:

    include(":moduleA")
    include(":moduleB")
    

    若模块存在嵌套结构,需填写完整路径(如:features:moduleB)。

  4. 彻底清理Gradle缓存

    • 删除项目根目录的.gradle文件夹,以及各模块下的build文件夹
    • 执行终端命令强制刷新依赖:
      # Mac/Linux
      ./gradlew clean build --refresh-dependencies
      
      # Windows
      gradlew clean build --refresh-dependencies
      
  5. 匹配Android Studio与Kotlin插件版本
    确保使用的Android Studio版本(推荐Arctic Fox及以上)和Kotlin插件版本完全一致,版本不匹配可能引发依赖同步的兼容性bug。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 14:30:14