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