【问题标题】:Json$Default cannot be cast to kotlinx.serialization.json.JsonJson$Default 不能转换为 kotlinx.serialization.json.Json
【发布时间】:2020-12-24 15:43:56
【问题描述】:

kotlinx.serialization 和在 androidTest 中运行测试的问题。

Lib 版本:

org.jetbrains.kotlinx:kotlinx-serialization-json:1.0.1
org.jetbrains.kotlin:kotlin-stdlib:1.4.10

我的 Json 实例:

Json(Json.Default) {
    serializersModule = SerializersModule {
        // serializers here
    }
    coerceInputValues = true
    ignoreUnknownKeys = true
    isLenient = true
}

UI测试方案

存根 json -> 使用 kotlinx.serialization.json 反序列化 json -> 显示屏幕

如果我在 androidTest 文件夹中运行 UI 测试,我会得到异常

java.lang.ClassCastException: kotlinx.serialization.json.Json$Default cannot be cast to kotlinx.serialization.json.Json

您知道如何解决这个问题吗?

更新

另一个变种。不使用默认值

Json {
    serializersModule = SerializersModule {
        // serializers here
    }
    coerceInputValues = true
    ignoreUnknownKeys = true
    isLenient = true
}

例外

No static method Json$default(Lkotlinx/serialization/json/Json;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Lkotlinx/serialization/json/Json

【问题讨论】:

  • 在 github 上添加演示项目会很有帮助。

标签: android kotlinx.serialization


【解决方案1】:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-22
    • 2021-10-25
    • 2015-10-12
    • 1970-01-01
    • 1970-01-01
    • 2018-02-10
    • 2023-03-22
    相关资源
    最近更新 更多