Serialization 科特林系列化:“;未解析的引用:序列化程序“;
我正在试用Kotlin系列化。按照说明进行设置后,我得到以下代码的Serialization 科特林系列化:“;未解析的引用:序列化程序“;,serialization,kotlin,Serialization,Kotlin,我正在试用Kotlin系列化。按照说明进行设置后,我得到以下代码的未解析引用:serializer生成错误: val serializer : KSerializer<User> = User.serializer() 在插件中,您不能像以前那样放置字符串: 我认为Kotlin插件本身的激活是因为id(“org.jetbrains.Kotlin.jvm”).version(“1.3.20”),而不是因为“Kotlin” 自述说 您可以使用Gradle plugins DSL而不是传
未解析引用:serializer
生成错误:
val serializer : KSerializer<User> = User.serializer()
在
插件中
,您不能像以前那样放置字符串:
我认为Kotlin插件本身的激活是因为id(“org.jetbrains.Kotlin.jvm”).version(“1.3.20”)
,而不是因为“Kotlin”
自述说
您可以使用Gradle plugins DSL而不是传统的apply插件,使用kotlin插件设置序列化插件:
plugins {
id 'kotlin-multiplatform' version '1.3.20'
id 'kotlinx-serialization' version '1.3.20'
}
在这种情况下,由于序列化插件尚未发布到Gradle插件门户,您需要将插件解析规则添加到设置中。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}")
}
}
}
}
不要忘记从buildscript依赖项中删除插件上的类路径依赖项,否则,您将得到一个关于冲突版本的错误
因此,最小的改变是从插件
块和
加
相反。1。这是唯一的错误吗?可能在
serializer()
之前发生了一些事情,其余的都被生成了。2.以防万一,再次检查用户
是否被注释为@Serializable
@AlexeyRomanov 1。是的,这是唯一的错误,无论我是从命令行还是在IntelliJ中构建。2.是的,用户
用@Serializable
注释。如果我应用插件
它抛出:未找到id为“kotlinx serialization”的插件
。在buildscript中添加了依赖项和'maven{url'}'repositories@fisio你可以单独问一个问题。
plugins {
id 'kotlin-multiplatform' version '1.3.20'
id 'kotlinx-serialization' version '1.3.20'
}
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}")
}
}
}
}
apply plugin: 'kotlinx-serialization'