如何将序列化添加到 Kotlin Jet Compose 项目中?

问题描述 投票:0回答:1

我对 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 serialization android-jetpack-compose
1个回答
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")
© www.soinside.com 2019 - 2024. All rights reserved.