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

KMM项目中无法运行Android本地JUnit测试任务,请求Gradle配置排查协助

KMM项目中无法运行Android本地JUnit测试任务,请求Gradle配置排查协助

看起来你在KMM项目里运行Android本地测试任务时遇到了阻碍,我结合你提供的Gradle配置,梳理了几个可能的问题点和修复建议,你可以逐一排查:


1. 缺失Android本地测试的SourceSet与依赖配置

Android本地单元测试(Local Task)对应的是test SourceSet(代码在src/test目录下),而仪器化测试对应androidTest SourceSet。你的配置里完全没有这两个SourceSet的定义和依赖,这是测试任务无法运行的核心原因之一。

你可以在sourceSets块中补充以下配置:

sourceSets {
    // ... 保留已有的commonMain、commonTest等配置
    // Android本地单元测试(对应Local Task)
    test {
        dependencies {
            implementation(libs.kotlin.test)
            implementation(libs.junit)
            // 按需添加测试辅助库,比如协程测试、MockK等
            implementation(libs.coroutines.test)
        }
    }
    // 可选:Android仪器化测试配置(如果需要运行设备/模拟器测试)
    androidTest {
        dependencies {
            implementation(libs.androidx.test.ext.junit)
            implementation(libs.androidx.test.espresso.core)
        }
    }
}

同时要确保libs.versions.toml中已定义这些测试库的版本,比如:

[versions]
junit = "4.13.2"
androidx-test-ext-junit = "1.1.5"
coroutines-test = "1.7.3"
[libraries]
junit = { module = "junit:junit", version.ref = "junit" }
androidx-test-ext-junit = { module = "androidx.test.ext:junit", version.ref = "androidx-test-ext-junit" }
coroutines-test = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-test", version.ref = "coroutines-test" }

2. 确认JDK版本与配置一致性

你在androidTarget和android块中都指定了Java 17/JVM 17,但要确保:

  • 项目使用的JDK版本是17(在IDE的Project Structure中检查)
  • Gradle的JDK配置也是17(可以在gradle.properties中设置org.gradle.java.home指向JDK17路径,或者在IDE的Gradle设置里指定)
    版本不匹配会直接导致编译或测试任务失败。

3. 检查依赖库的版本兼容性

你的依赖中使用了大量多平台库(Ktor、Koin、Coroutines等),要确保这些库的版本相互兼容:

  • 比如Ktor的core、contentNegotiation、serialization依赖必须是同一版本
  • Koin的core和android版本要严格匹配
  • 所有依赖的版本在libs.versions.toml中统一管理,避免隐性版本冲突

4. 验证Kotlin与AGP版本兼容性

你使用了Kotlin Multiplatform的新APIandroidTarget(替代旧的android()),这要求Kotlin Gradle Plugin版本至少为1.9.0,同时Android Gradle Plugin(AGP)版本要对应匹配(比如Kotlin 1.9.x对应AGP 8.0+)。如果版本不兼容,会导致Android目标配置失效。


如果排查完这些点还是无法运行任务,建议你把运行任务时的具体错误日志贴出来,比如Gradle控制台的报错信息,这样能更精准地定位问题。

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.08 08:04:37