Json$Default 不能转换为 kotlinx.serialization.json.Json

问题描述

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
}

界面测试方案

stub json -> json 反序列化 kotlinx.serialization.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

解决方法

问题在于诱惑框架

  1. 在此处发布https://github.com/allure-framework/allure-kotlin/issues/38
  2. 修正此处https://github.com/allure-framework/allure-kotlin/pull/37