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

运行kotlinx-coroutines-test的runTest时出现NoSuchMethodError求助

问题分析与解决方案

问题根源

你遇到的NoSuchMethodError是由于kotlinx-coroutines-test 1.6.4与Kotlin 1.8.0版本不兼容导致的。kotlinx-coroutines 1.6.x系列依赖的是Kotlin 1.7.x版本,而Kotlin 1.8.0对kotlin.time.AbstractLongTimeSource的构造函数签名进行了变更,使得旧版本的协程测试库无法找到匹配的方法。

解决方案

1. 升级kotlinx-coroutines依赖版本

将kotlinx-coroutines-core和kotlinx-coroutines-test升级到适配Kotlin 1.8.0的版本,推荐使用1.7.3(该版本完全兼容Kotlin 1.8.x)。修改你的build.gradle依赖配置如下:

dependencies {
  testImplementation("org.jetbrains.kotlinx:kotlinx-coroutines-test:1.7.3")
  testImplementation("junit:junit:4.13.2")
  implementation(platform("org.jetbrains.kotlin:kotlin-bom:1.8.0"))
  implementation("org.jetbrains.kotlin:kotlin-stdlib-common:1.8.0")
  implementation("org.jetbrains.kotlin:kotlin-stdlib:1.8.0")
  implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3")
  testImplementation("org.jetbrains.kotlin:kotlin-test")
  testImplementation("org.jetbrains.kotlin:kotlin-test-junit")
  implementation("com.google.guava:guava:31.1-jre")

  api("org.apache.commons:commons-math3:3.6.1")
  compileOnly("com.google.android:android:4.1.1.4")
}

2. 验证依赖一致性

  • 确保所有kotlinx-coroutines相关依赖的版本保持统一,避免混合不同版本导致的冲突。
  • 利用Kotlin BOM(org.jetbrains.kotlin:kotlin-bom:1.8.0)来管理Kotlin标准库的版本,避免手动指定版本时出现不一致。

额外提示

协程库的版本通常跟随Kotlin版本迭代,主版本号存在对应关系(如Kotlin 1.8.x对应协程1.7.x,Kotlin 1.9.x对应协程1.8.x),后续遇到类似问题可参考这个对应规则调整版本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 21:10:19