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

Kotlin多平台项目针对浏览器(WebAssembly)目标的Ktor依赖解析问题

Kotlin多平台项目针对浏览器(WebAssembly)目标的Ktor依赖解析问题

嘿,我之前在做KMP Wasm项目的时候也碰到过几乎一模一样的Ktor依赖问题,给你几个实际试过有效的排查和解决方向:

  • 补全Wasm平台专属的Ktor客户端引擎依赖
    你看到的变体不匹配错误,核心原因是Ktor的通用模块(比如content-negotiation)需要配合对应平台的客户端引擎才能正常工作。在composeApp模块的build.gradle.kts里,除了在commonMain里声明通用的content-negotiation依赖,还得在wasmJsMain里添加Wasm专属的Ktor客户端引擎依赖:

    kotlin {
        sourceSets {
            val commonMain by getting {
                dependencies {
                    implementation("io.ktor:ktor-client-content-negotiation:$ktorVersion")
                    implementation("io.ktor:ktor-serialization-kotlinx-json:$ktorVersion")
                }
            }
            val wasmJsMain by getting {
                dependencies {
                    // 添加Wasm平台的Ktor客户端引擎
                    implementation("io.ktor:ktor-client-wasm:$ktorVersion")
                }
            }
        }
    }
    

    一定要保证ktorVersion和你用的2.3.9完全一致,版本不兼容也会触发变体匹配失败。

  • 检查Kotlin与Ktor的版本兼容性
    Ktor 2.3.9要求Kotlin版本至少在1.9.20及以上,如果你的项目用的Kotlin版本低于这个,很可能会因为属性不匹配导致依赖解析失败。可以在项目根目录的build.gradle.kts里确认Kotlin插件版本:

    plugins {
        alias(libs.plugins.kotlin.multiplatform) version "1.9.20" apply false
        // 其他插件配置...
    }
    
  • 清理Gradle缓存并强制刷新依赖
    有时候Gradle的本地缓存会残留旧的依赖元数据,导致解析异常。先运行以下命令清理缓存并刷新:

    ./gradlew clean build --refresh-dependencies
    

    之后再尝试执行wasmJsBrowserRun -t --quiet。

  • 确认Wasm目标的Gradle配置完整性
    确保你的WasmJs平台配置是完整的,比如有没有声明可执行二进制文件:

    kotlin {
        wasmJs {
            browser {
                commonWebpackConfig {
                    outputFileName = "app.js"
                }
            }
            binaries.executable()
        }
        // 其他平台配置...
    }
    

你之前碰到的错误日志里提到的“consumer was configured to find a library for use during 'kotlin-runtime', preferably optimized for non-jvm”,本质就是平台专属的依赖缺失,导致Gradle找不到符合Wasm目标的变体。按上面的步骤调整后,应该能解决这个问题。

备注:内容来源于stack exchange,提问作者Suraj Sharma

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.16 11:58:12