Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/9.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/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
让kotlinx序列化在多平台项目中工作_Kotlin_Kotlin Multiplatform_Kotlinx.serialization_Kotlin Gradle Plugin - Fatal编程技术网

让kotlinx序列化在多平台项目中工作

让kotlinx序列化在多平台项目中工作,kotlin,kotlin-multiplatform,kotlinx.serialization,kotlin-gradle-plugin,Kotlin,Kotlin Multiplatform,Kotlinx.serialization,Kotlin Gradle Plugin,我正在Kotlin 1.4-M2的多平台项目中进行Kotlin seriazliation的试驾,遵循github的教程,但我没有得到要编译的序列化位 这是我的build.gradle.kts plugins { val kotlinVersion = "1.4-M2" kotlin("multiplatform") version kotlinVersion kotlin("plugin.serialization") version kotlinVersion }

我正在Kotlin 1.4-M2的多平台项目中进行Kotlin seriazliation的试驾,遵循github的教程,但我没有得到要编译的序列化位

这是我的
build.gradle.kts

plugins {
    val kotlinVersion = "1.4-M2"
    kotlin("multiplatform") version kotlinVersion
    kotlin("plugin.serialization") version kotlinVersion
}
我已经在一个简单的数据类上试过了


@Serializable
data class Test(

    val blah: Int = 0

)

import kotlinx.serialization.json.json我在Slack上得到了一些帮助,谢谢Sergey

显示与EAP兼容的版本 或里程碑版本。您应该使用序列化运行时 版本0.20.0-1.4-M2。请注意,对于此版本,您需要添加 commonMain中kotlinx序列化运行时的单一依赖项 源代码集,而不是对 kotlinx序列化运行时通用和平台部分。见 此处仅指定一次依赖项部分:

总之,我的插件应该和我的Kotlin版本相匹配

plugins {
    val kotlinVersion = "1.4-M2"
    kotlin("multiplatform") version kotlinVersion
    kotlin("plugin.serialization") version kotlinVersion
}
然后在SourceSet下,我应该使用单个依赖项,而不是每个平台使用一个依赖项

    sourceSets {

        val serializationVersion = "0.20.0-1.4-M2"

        val commonMain by getting {
            dependencies {
                implementation(kotlin("stdlib-common"))
                implementation("org.jetbrains.kotlinx:kotlinx-serialization-runtime:$serializationVersion")
            }
        }
JVM和JS Main不应该有任何序列化插件,所以应该删除这些行

        val jvmMain by getting {
            dependencies {
                implementation(kotlin("stdlib-jdk8"))
                implementation(kotlin("reflect"))
                // implementation("org.jetbrains.kotlinx:kotlinx-serialization-runtime:$serializationVersion") <<-- remove this

val jvmMain通过获取{
依赖关系{
实施(kotlin(“stdlib-jdk8”))
实施(kotlin(“反映”))

//实现(“org.jetbrains.kotlinx:kotlinx序列化运行时:$serializationVersion”)我在Slack上得到了一些帮助,谢谢Sergey

显示与EAP兼容的版本 或里程碑版本。您应该使用序列化运行时 版本0.20.0-1.4-M2。请注意,对于此版本,您需要添加 commonMain中kotlinx序列化运行时的单一依赖项 源代码集,而不是对 kotlinx序列化运行时公用部分和平台部分。请参阅 此处仅指定一次依赖项部分:

总之,我的插件应该和我的Kotlin版本相匹配

plugins {
    val kotlinVersion = "1.4-M2"
    kotlin("multiplatform") version kotlinVersion
    kotlin("plugin.serialization") version kotlinVersion
}
然后在SourceSet下,我应该使用单个依赖项,而不是每个平台使用一个依赖项

    sourceSets {

        val serializationVersion = "0.20.0-1.4-M2"

        val commonMain by getting {
            dependencies {
                implementation(kotlin("stdlib-common"))
                implementation("org.jetbrains.kotlinx:kotlinx-serialization-runtime:$serializationVersion")
            }
        }
JVM和JS Main不应该有任何序列化插件,所以应该删除这些行

        val jvmMain by getting {
            dependencies {
                implementation(kotlin("stdlib-jdk8"))
                implementation(kotlin("reflect"))
                // implementation("org.jetbrains.kotlinx:kotlinx-serialization-runtime:$serializationVersion") <<-- remove this

val jvmMain通过获取{
依赖关系{
实施(kotlin(“stdlib-jdk8”))
实施(kotlin(“反映”))
//实现(“org.jetbrains.kotlinx:kotlinx序列化运行时:$serializationVersion”)
        val jsMain by getting {
            dependencies {
                implementation(kotlin("stdlib-js"))
                // implementation("org.jetbrains.kotlinx:kotlinx-serialization-runtime-js:$serializationVersion") <<-- remove this
            }
        }