gpt4 book ai didi

serialization - Kotlin 序列化 : "Unresolved reference: serializer"

转载 作者:行者123 更新时间:2023-12-02 13:36:43 29 4
gpt4 key购买 nike

我正在尝试 Kotlin 序列化。按照说明进行设置后,我得到了 Unresolved reference: serializer使用此代码构建错误:

val serializer : KSerializer<User> = User.serializer()

我推测编译器插件以某种方式没有启动,但看不到我在设置中遗漏了什么。

这是我的 build.gradle.kts :
buildscript {
val kotlinVer: String by extra("1.3.20")
repositories { jcenter() }

dependencies {
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVer")
classpath("org.jetbrains.kotlin:kotlin-serialization:$kotlinVer")
}
}

plugins {
id("org.jetbrains.kotlin.jvm").version("1.3.20")

application

"kotlin"
"kotlinx-serialization"
}

repositories {
jcenter()
maven("https://kotlin.bintray.com/kotlinx")
}

dependencies {
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8")
compile("org.jetbrains.kotlinx:kotlinx-serialization-runtime:0.10.0")

testImplementation("org.jetbrains.kotlin:kotlin-test")

testImplementation("org.jetbrains.kotlin:kotlin-test-junit")
}

application {
mainClassName = "com.digizen.AppKt"
}

最佳答案

plugins , 你不能像刚才那样只放一个字符串,the options are (for .kts ) :

plugins {
`«plugin id»` // (1)
id(«plugin id») // (2)
id(«plugin id») version «plugin version» [apply «false»] // (3)
}

我认为 Kotlin 插件本身正在激活是因为 id("org.jetbrains.kotlin.jvm").version("1.3.20") ,不是因为 "kotlin" .

自述文件说

Gradle (with plugins block)

You can setup serialization plugin with the kotlin plugin using Gradle plugins DSL instead of traditional apply plugin:

plugins {
id 'kotlin-multiplatform' version '1.3.20'
id 'kotlinx-serialization' version '1.3.20'
}

In this case, since serialization plugin is not published to Gradle plugin portal yet, you'll need to add plugin resolution rules to your settings.gradle:

pluginManagement {
resolutionStrategy {
eachPlugin {
if (requested.id.id == "kotlin-multiplatform") {
useModule("org.jetbrains.kotlin:kotlin-gradle-plugin:${requested.version}")
}
if (requested.id.id == "kotlinx-serialization") {
useModule("org.jetbrains.kotlin:kotlin-serialization:${requested.version}")
}
}
}
}

Don't forget to drop classpath dependency on the plugin from the buildscript dependencies, otherwise, you'll get an error about conflicting versions.



所以最小的变化是从 plugins 中删除两个字符串阻止和
添加
apply plugin: 'kotlinx-serialization'

反而。

关于serialization - Kotlin 序列化 : "Unresolved reference: serializer",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54752020/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com