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

Kotlin多平台构建报错:无法解析io.ktor-ktor-client-logging库

构建报错解决方案

报错根本原因

你当前项目使用的Kotlin版本为1.5.10,而引入的Ktor 1.6.3版本的ktor-client-logging库是基于Kotlin 1.5.20编译的,两者Native ABI版本不匹配,导致库文件即使存在也无法被正常解析加载。你修改kotlin.mpp.enableGranularSourceSetsMetadata配置后的报错已经直接暴露了该版本不兼容问题。

解决方法

你可以选择以下任意一种方案解决版本兼容问题:

  • 方案一:升级项目Kotlin版本匹配Ktor版本
    将项目根目录构建配置中的Kotlin插件版本升级到1.5.20及以上兼容版本,示例配置(build.gradle.kts):
    plugins {
        kotlin("multiplatform") version "1.5.20" apply false
        // 其余Kotlin相关插件版本同步更新为1.5.20
    }
    
    无需修改kotlin.mpp.enableGranularSourceSetsMetadata配置,保持默认值即可。
  • 方案二:降低Ktor版本匹配当前Kotlin版本
    如果你不方便升级Kotlin版本,可以将所有Ktor依赖的版本从1.6.3降级到1.6.2,该版本是基于Kotlin 1.5.10编译的,同时同步调整kotlinx-serialization-json版本为适配1.5.10的1.2.1版本,示例依赖配置:
    sourceSets {
        val commonMain by getting {
            dependencies {
                implementation("io.ktor:ktor-client-core:1.6.2")
                implementation("io.ktor:ktor-client-logging:1.6.2")
                implementation("io.ktor:ktor-client-serialization:1.6.2")     
                implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.2.1")
            }
        }
        val androidMain by getting {
            dependencies {
                implementation("io.ktor:ktor-client-okhttp:1.6.2")
            }
        }
        val iosArm64Main by getting {
            dependencies {
                implementation("io.ktor:ktor-client-ios:1.6.2")
            }
        }
        // 其余配置保持不变
    }
    

构建前清理操作

修改版本配置后执行以下操作清除缓存,避免旧缓存影响构建:

  1. 项目根目录执行./gradlew clean命令清除项目本地构建产物
  2. 删除Gradle缓存中Ktor相关的旧版本文件,可执行命令:rm -rf ~/.gradle/caches/modules-2/files-2.1/io.ktor
  3. 重新同步Gradle依赖后执行构建即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 09:45:04