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

Kotlin scratch文件版本不兼容,无法使用kotlinx_serialization

问题根源

你遇到的元数据版本不兼容错误,核心是Kotlin版本、kotlinx-serialization插件版本、序列化依赖版本三者不匹配:
项目Kotlin版本为1.8.22,但序列化插件用了1.9.20(高于项目Kotlin版本),导致编译生成的元数据是1.9.0版本,而项目运行环境只能识别到1.7.1版本的元数据,从而触发冲突。

修复步骤

1. 统一序列化插件与Kotlin版本

在build.gradle.kts中,将org.jetbrains.kotlin.plugin.serialization插件版本修改为与项目Kotlin版本完全一致的1.8.22:

plugins {
    id("org.jetbrains.kotlin.plugin.serialization") version "1.8.22"
    // 保留其他已有插件(如spring-boot等)
}

2. 确保项目Kotlin版本配置一致

检查build.gradle.kts中的Kotlin版本设置,确认语言版本和工具链匹配:

kotlin {
    jvmToolchain(17) // 与你的JDK17对应
    sourceSets {
        all {
            languageSettings {
                languageVersion = "1.8" // 与项目Kotlin版本1.8.22对应
            }
        }
    }
}

3. 调整序列化依赖版本(可选但稳妥)

kotlinx-serialization-json的版本需与Kotlin版本兼容,Kotlin 1.8.x推荐使用1.5.3版本(也可兼容1.6.0,但版本匹配更稳妥):

dependencies {
    implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.5.3")
    // 其他依赖...
}

4. 同步IDEA的Kotlin插件版本

打开IntelliJ IDEA,进入Settings -> Languages & Frameworks -> Kotlin,确保IDEA的Kotlin插件版本为1.8.22(与项目版本一致),避免scratch文件使用高版本插件编译。

5. 清理并重新构建项目

  • 终端执行./gradlew clean build清理旧编译产物并重新构建
  • 在IDEA中点击File -> Sync Project with Gradle Files同步配置
验证修复

创建Kotlin scratch文件,测试序列化代码:

import kotlinx.serialization.Serializable
import kotlinx.serialization.json.Json

@Serializable
data class User(val name: String, val age: Int)

fun main() {
    val user = User("Jerry", 25)
    val json = Json.encodeToString(user)
    println(json)
}

如果能正常输出JSON字符串,说明版本兼容问题已解决。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 07:32:43