Ktor 客户端 NoSuchMethodError
Ktor client NoSuchMethodError
我想编写一个电报机器人并为此使用 this library from Github。在这个电报机器人中,我需要向另一个服务发出一些请求,所以我想为此使用 ktor 客户端库。但是,当我尝试实例化 ktor httpClient
时,出现以下异常:
Exception in thread "main" java.lang.NoSuchMethodError: 'void io.ktor.util.collections.ConcurrentMap.<init>(io.ktor.util.Lock, int, int, kotlin.jvm.internal.DefaultConstructorMarker)'
at io.ktor.client.engine.cio.CIOEngine.<init>(CIOEngine.kt:32)
at io.ktor.client.engine.cio.CIO.create(CIOCommon.kt:23)
at io.ktor.client.HttpClientKt.HttpClient(HttpClient.kt:42)
at io.ktor.client.HttpClientJvmKt.HttpClient(HttpClientJvm.kt:21)
at io.ktor.client.HttpClientJvmKt.HttpClient$default(HttpClientJvm.kt)
at problem.ktor.MainKt.main(Main.kt:9)
at problem.ktor.MainKt.main(Main.kt)
我做了一个新项目并将问题缩小到电报机器人库,它显然与 kotr 库冲突。我假设 kotr 库存在一些版本冲突,因为那是异常发生的地方。 如何解决冲突?
这是一个最小的可重现示例。使用以下 build.gradle.kts 文件:
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
plugins {
application
kotlin("jvm") version "1.4.30"
}
repositories {
mavenCentral()
maven(url = "https://jitpack.io")
}
dependencies {
implementation("io.ktor:ktor-client-core:1.5.2")
implementation("io.ktor:ktor-client-cio:1.5.2")
implementation("com.github.kotlin-telegram-bot:kotlin-telegram-bot:6.0.4")
}
和运行以下最小主函数:
import io.ktor.client.*
fun main() {
HttpClient()
}
也许重要,我用的是Java15.0.2.
有问题的依赖项是 com.github.kotlin-telegram-bot.kotlin-telegram-bot:webhook:6.0.4
。作为解决方法,您可以排除它,因为它只是一个示例:
implementation("com.github.kotlin-telegram-bot:kotlin-telegram-bot:6.0.4") {
exclude(module = "webhook")
}
我想编写一个电报机器人并为此使用 this library from Github。在这个电报机器人中,我需要向另一个服务发出一些请求,所以我想为此使用 ktor 客户端库。但是,当我尝试实例化 ktor httpClient
时,出现以下异常:
Exception in thread "main" java.lang.NoSuchMethodError: 'void io.ktor.util.collections.ConcurrentMap.<init>(io.ktor.util.Lock, int, int, kotlin.jvm.internal.DefaultConstructorMarker)'
at io.ktor.client.engine.cio.CIOEngine.<init>(CIOEngine.kt:32)
at io.ktor.client.engine.cio.CIO.create(CIOCommon.kt:23)
at io.ktor.client.HttpClientKt.HttpClient(HttpClient.kt:42)
at io.ktor.client.HttpClientJvmKt.HttpClient(HttpClientJvm.kt:21)
at io.ktor.client.HttpClientJvmKt.HttpClient$default(HttpClientJvm.kt)
at problem.ktor.MainKt.main(Main.kt:9)
at problem.ktor.MainKt.main(Main.kt)
我做了一个新项目并将问题缩小到电报机器人库,它显然与 kotr 库冲突。我假设 kotr 库存在一些版本冲突,因为那是异常发生的地方。 如何解决冲突?
这是一个最小的可重现示例。使用以下 build.gradle.kts 文件:
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
plugins {
application
kotlin("jvm") version "1.4.30"
}
repositories {
mavenCentral()
maven(url = "https://jitpack.io")
}
dependencies {
implementation("io.ktor:ktor-client-core:1.5.2")
implementation("io.ktor:ktor-client-cio:1.5.2")
implementation("com.github.kotlin-telegram-bot:kotlin-telegram-bot:6.0.4")
}
和运行以下最小主函数:
import io.ktor.client.*
fun main() {
HttpClient()
}
也许重要,我用的是Java15.0.2.
有问题的依赖项是 com.github.kotlin-telegram-bot.kotlin-telegram-bot:webhook:6.0.4
。作为解决方法,您可以排除它,因为它只是一个示例:
implementation("com.github.kotlin-telegram-bot:kotlin-telegram-bot:6.0.4") {
exclude(module = "webhook")
}