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

Ktor客户端安装ContentNegotiation遇NoSuchMethodError问题求助

问题解决:Ktor HttpClient NoSuchMethodError 错误

核心原因

你的依赖中存在Ktor版本不一致和过时依赖的问题,导致API签名不匹配,引发方法找不到的错误:

  • ktor-client-okhttp 使用了1.3.1(老版本),与核心依赖2.3.6的API完全不兼容
  • ktor-serialization-kotlinx-json 版本固定为2.3.0,未跟随全局ktor_version(2.3.6)
  • ktor-client-serialization 是Ktor 2.x已废弃的依赖,会引发类冲突

修复步骤

1. 统一所有Ktor依赖版本并移除过时依赖

修改Client模块的build.gradle依赖配置,确保所有Ktor相关依赖使用相同的$ktor_version(2.3.6),并移除ktor-client-serialization:

dependencies {
    implementation("io.ktor:ktor-client-core:$ktor_version")
    implementation("io.ktor:ktor-client-logging-jvm:$ktor_version")
    testImplementation("org.jetbrains.kotlin:kotlin-test-junit:1.9.20")
    implementation("io.ktor:ktor-client-content-negotiation:$ktor_version")
    implementation("io.ktor:ktor-serialization-kotlinx-json:$ktor_version")
    implementation("io.ktor:ktor-client-okhttp:$ktor_version")
    implementation("com.google.auth:google-auth-library-oauth2-http:1.16.0")
    implementation("com.google.apis:google-api-services-drive:v3-rev20220815-2.0.0")
}

2. 清理构建缓存并重新编译

执行以下命令清理旧依赖缓存,确保新依赖生效:

./gradlew clean build

额外说明

Ktor 2.x对插件体系进行了重构,ContentNegotiation等插件的install方法签名与1.x完全不同,必须保证所有Ktor模块版本一致,否则必然出现兼容性问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 11:10:08