调用生成的 Serializer() 方法时收到 NoClassDefFoundError

2024-01-08

我得到了NoClassDefFoundError当尝试调用Foo.serializer()上的方法@Serializable class.

这是我的测试用例:

@Serializable
data class Foo(val data: String)

val jsonString = json.stringify(
  Foo.serializer(), // <= Error happens here
  Foo(data = "foo")
)

尝试运行代码会产生以下堆栈跟踪:

java.lang.NoSuchMethodError: 'void kotlinx.serialization.internal.SerialClassDescImpl.<init>(java.lang.String, kotlinx.serialization.internal.GeneratedSerializer, int)'
    at com.example.Foo$$serializer.<clinit>(Foo.kt:7)
    at com.example.Foo$Companion.serializer(Foo.kt)

这是 Kotlin 和 Kotlinx.serialization 之间版本不匹配的结果,因为它们相对紧密耦合。就我而言,我使用的是 Kotlin 1.3.71 和 kotlinx.serialization 0.14.0,因此解决方案是将 kotlinx.serialization 升级到 0.20.0。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

调用生成的 Serializer() 方法时收到 NoClassDefFoundError 的相关文章

随机推荐