我对 Kotlin 和 IntelliJ 总体来说是新手,我正在尝试将序列化库添加到 Jet Compose 项目中,但编辑 build.gradle.kts 似乎无法正确添加它们。 我不确定我使用的版本是否不兼容或者我是否没有正确添加它们,但是当我编写这样的数据类时:
import kotlinx.serialization.Serializable
@Serializable
data class Cuenta(val id: String, val pagina: String, val email: String, val usuario: String, val cont: String)
它无法识别该库,因此@Serialized也无法识别。
我做错了什么以及如何让它发挥作用?
或者,如果这不起作用,是否有其他方法可以在 Kotlin Jet Compose 中序列化数据类?
目前我的 build.gradle 看起来像这样:
import org.jetbrains.compose.desktop.application.dsl.TargetFormat
plugins {
kotlin("jvm")
id("org.jetbrains.compose")
kotlin("plugin.serialization") version "1.6.0"
}
group = "com.example"
version = "1.0-SNAPSHOT"
repositories {
mavenCentral()
maven("https://maven.pkg.jetbrains.space/public/p/compose/dev")
google()
}
dependencies {
implementation(compose.desktop.currentOs)
implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.0")
}
compose.desktop {
application {
mainClass = "MainKt"
nativeDistributions {
targetFormats(TargetFormat.Dmg, TargetFormat.Msi, TargetFormat.Deb)
packageName = "PassGes2"
packageVersion = "1.0.0"
}
}
}
Kotlin 序列化插件和 JSON 库遵循不同的版本控制系统 (docs)。第一个版本应与正在使用的 Kotlin 版本匹配,第二个版本应选择与其兼容的发布版本。
Kotlin 的最新版本是 1.9.23,因此假设您正在使用它,您需要更新 Kotlin 序列化插件以匹配它:
kotlin("plugin.serialization") version "1.9.23"
我建议您确认这与您使用的 Kotlin 版本相同。我希望您可以在项目根文件夹中的
plugins
文件中的 build.gradle.kts
块中找到此版本,或者直接引用该版本的定义。
对于 JSON 库,1.6.x 版本与 1.9.x Kotlin 版本搭配使用 (docs)。最新的是1.6.3,你不妨使用它:
implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.3")