【发布时间】:2020-12-05 17:56:16
【问题描述】:
我有一个 kotlin 多平台项目,我需要 serialize 一个类。我在commonMain 和androidMain 和iosMain 中分别包含以下依赖项在我的multiplatform gradle file 中:
//commonMain
implementation "org.jetbrains.kotlinx:kotlinx-serialization-runtime-common:0.20.0"
//androidMain
implementation "org.jetbrains.kotlinx:kotlinx-serialization-runtime:0.20.0"
//iosMain
implementation "org.jetbrains.kotlinx:kotlinx-serialization-runtime-native:0.20.0"
这是我要上的课serialize:
@Serializable
class Test {
fun toJsonTestClass() = Json.stringify(Test.serializer(), this)
var value1:Double = 0.toDouble()
companion object {
fun buildClass(value1 : Double):Test {
val test = Test()
test.value1 = value1
return test
}
fun fromJsonTestClass(json:String) = Json.parse(Test.serializer(), json)
}
}
在另一个班级 (TrialClass) 中,我正在测试它:
val test = Test()
val testToJson = test.toJsonTestClass() //<- This is where the error is pointing to.
println(testToJson)
但是当我运行它时,我得到以下错误:
Exception in thread "main" java.lang.NoClassDefFoundError: kotlinx/serialization/json/Json at Test.toJsonTestClass(Test.kt:28) at TrialClass.main(TrialClass.kt:4) Caused by: java.lang.ClassNotFoundException: kotlinx.serialization.json.Json
在我的类中导入时我没有遇到任何问题,但是在运行时我得到了上述错误。
我们将不胜感激任何帮助或建议。
【问题讨论】:
标签: android kotlin kotlin-multiplatform json-serialization kotlinx.serialization