Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Serialization 科特林系列化:“;未解析的引用:序列化程序“;_Serialization_Kotlin - Fatal编程技术网

Serialization 科特林系列化:“;未解析的引用:序列化程序“;

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而不是传

我正在试用Kotlin系列化。按照说明进行设置后,我得到以下代码的
未解析引用: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'