在Moshi 1.5中使用Kotlin使用KotlinJsonAdapterFactory()时,无法找到类
我面对的问题有点奇怪,因为当我有一个正常的模型类,我用作为改造2的响应模型,我得到一些意想不到的错误,假设
open class Example : RealmObject(){ @Json(name = "token") var token: String? = null @Json(name = "data") var data: RealmList<Data>? = null }
和Data类是
open class Data : RealmObject(){ @Json(name = "info") var info: String? = null }
我的代码崩溃,显示一个ClassNotFoundException(我在调试模式下运行),如果删除KotlinJsonAdapterFactory()崩溃不会发生,但数据值变得不存在,即在调试模式下,它出现,就好像它不存在,即Example的一个对象将只显示标记值,数据不存在,甚至不存在,但我需要KotlinJsonAdapterFactory(),因为我使用annonations,所以上面只是一个实验。
我发现的唯一的解决方案是将两个类都转换为数据类,它完美地工作(当然,我要去除RealmObject扩展,使RealmList一个正常的列表),但我需要扩展RealmObject()类和数据类不能打开Realm db是模型所需要的。
所以我回到1.4删除了KotlinJsonAdapterFactory(),并且一切正常,甚至在似乎是proguard后,所以我应该怎么做才能升级到Moshi 1.5。
此外,我已经更新了我的示例代码中的数据对象是一个RealmList,可能是为什么它被忽略/不存在,当响应来了可能是因为我的RealMe虚拟适配器Moshi被忽略?
我将附上我的moshi片段和改造实例
Moshi`instance
Moshi.Builder() .add(KotlinJsonAdapterFactory()) .add(RealmListAdapter.FACTORY) .build()
改造实例
Retrofit.Builder() .baseUrl(BASE_URL) .addConverterFactory(MoshiConverterFactory.create(moshi)) .addCallAdapterFactory(RxJava2CallAdapterFactory.create()) .client(okHttpClient) .build()