当我试图在客户端获取HttpClient实例时,我遵循js-exception
列表为空。“,cause_th0jdv$_0: null,name:"NoSuchElementException",堆栈:"NoSuchElementException:

不幸的是,遵循解决办法是没有帮助的
js {
browser {
dceTask {
keep("ktor-ktor-io.\$\$importsForInline\$\$.ktor-ktor-io.io.ktor.utils.io")
}
}
}SampleJs.kt
package sample
import io.ktor.client.HttpClient
import io.ktor.client.features.json.JsonFeature
import kotlin.browser.document
actual class Sample {
actual fun checkMe() = 14
}
actual object Platform {
actual val name: String = "JS"
}
@Suppress("unused")
@JsName("helloWorld")
fun helloWorld(salutation: String) {
val message = "$salutation from Kotlin.JS ${hello()}, check me value: ${Sample().checkMe()}"
document.getElementById("js-response")?.textContent = message
}
fun main() {
document.addEventListener("DOMContentLoaded", {
helloWorld("Hi!")
val client = HttpClient {
install(JsonFeature)
}
})
}build.gradle
buildscript {
repositories {
jcenter()
}
}
plugins {
id 'org.jetbrains.kotlin.multiplatform' version '1.3.72'
id 'org.jetbrains.kotlin.plugin.serialization' version '1.3.72'
id 'distribution'
}
repositories {
jcenter()
maven { url "https://dl.bintray.com/kotlin/ktor" }
mavenCentral()
}
def ktor_version = '1.3.2'
def logback_version = '1.2.3'
def serialization_version = '0.20.0'
kotlin {
jvm()
js {
browser {
dceTask {
keep("ktor-ktor-io.\$\$importsForInline\$\$.ktor-ktor-io.io.ktor.utils.io")
}
}
}
sourceSets {
commonMain {
dependencies {
implementation kotlin('stdlib-common')
implementation "org.jetbrains.kotlinx:kotlinx-serialization-runtime-common:$serialization_version"
}
}
commonTest {
dependencies {
implementation kotlin('test-common')
implementation kotlin('test-annotations-common')
}
}
jvmMain {
dependencies {
implementation kotlin('stdlib-jdk8')
implementation "io.ktor:ktor-server-netty:$ktor_version"
implementation "io.ktor:ktor-server-servlet:$ktor_version"
implementation "io.ktor:ktor-html-builder:$ktor_version"
implementation "ch.qos.logback:logback-classic:$logback_version"
implementation "io.ktor:ktor-client-core:$ktor_version"
implementation "org.jetbrains.kotlinx:kotlinx-serialization-runtime:$serialization_version"
}
}
jvmTest {
dependencies {
implementation kotlin('test')
implementation kotlin('test-junit')
}
}
jsMain {
dependencies {
implementation npm ("text-encoding", "0.7.0")
implementation npm ("bufferutil", "4.0.1")
implementation npm ("utf-8-validate", "5.0.2")
implementation npm ("abort-controller", "3.0.0")
implementation npm ("fs", "0.0.1-security")
implementation kotlin('stdlib-js')
implementation "io.ktor:ktor-client-json-js:$ktor_version"
implementation "io.ktor:ktor-client-js:$ktor_version"
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core-js:1.3.8"
implementation "org.jetbrains.kotlinx:kotlinx-serialization-runtime-js:$serialization_version"
}
}
jsTest {
dependencies {
implementation kotlin('test-js')
}
}
}
}
jvmJar {
dependsOn(jsBrowserProductionWebpack)
from(new File(jsBrowserProductionWebpack.entry.name, jsBrowserProductionWebpack.outputPath))
}
task run(type: JavaExec, dependsOn: [jvmJar]) {
group = "application"
main = "sample.SampleJvmKt"
classpath(configurations.jvmRuntimeClasspath, jvmJar)
args = []
}发布于 2020-11-05 07:05:40
我面对同样的问题,并通过添加
implementation("io.ktor:ktor-client-serialization:1.4.1")在我的KotlinJS程序中。Ktor依赖项的完整列表是
implementation("io.ktor:ktor-client-js:1.4.1")
implementation("io.ktor:ktor-client-serialization:1.4.1")P.S.:这个解决方案受到了这些票的启发:
https://stackoverflow.com/questions/63327124
复制相似问题