android - 将 RealmList 与 Moshi 一起使用时出错
问题描述
原因:java.lang.IllegalArgumentException: Platform java.lang.Class annotated [] 需要显式注册 JsonAdapter
将 RealmList 与 Moshi 一起使用时出现上述错误。
public class MenuModel implements RealmModel
{
@Json(name = "menugroups")
private RealmList<MenuGroupModel> menugroups = null;
}
我对此进行了一些研究,发现以下内容:
https://github.com/realm/realm-java/issues/2711
那里的解决方案说我需要使用RealmListAdapter。我已将代码复制到我的项目中。但是,我不知道如何以及在何处实现此适配器。
我该如何使用它?
解决方案
去这里: Regalia Moshi
将RealmListAdapter和RealmListAdapterJsonFactory复制到您的项目(或使用链接的项目)。像这样将适配器添加到您的 moshi 中:
Moshi moshi = new Moshi.Builder()
.add(new RealmListJsonAdapterFactory())
.build();
进一步使用,如果您使用的是 Retrofit:
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(API.ENDPOINT)
.addConverterFactory(MoshiConverterFactory.create(moshi))
.build();