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
相关产品推荐
相关产品推荐

