NoClassDefFoundError Kotlinx序列化

问题描述

我有一个kotlin跨平台项目,需要https一堂课。我在serialize的{​​{1}}和commonMainandroidMain中分别包含以下依赖项:

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

在类中导入时,我没有任何问题,但是在运行时,出现上述错误。

任何帮助或建议将不胜感激。

解决方法

您的课程可能被混淆了。您有两种选择:

在类上方添加@Keep批注:

@Serializable
@Keep
class Teste {
// ...
}...

或将其添加到模块的proguard:

-keep (path_to_the_class).test.** { *; }
,

就我而言,我所做的一切都正确-代码和配置。 Invalidate Caches / Restart并没有帮助,我最终得到了IntelliJ IDEA的魔法adb devices

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...