首页 > 解决方案 > 将 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。我已将代码复制到我的项目中。但是,我不知道如何以及在何处实现此适配器。

我该如何使用它?

标签: androidrealm-mobile-platformrealm-listmoshi

解决方案


去这里: Regalia Moshi

RealmListAdapterRealmListAdapterJsonFactory复制到您的项目(或使用链接的项目)。像这样将适配器添加到您的 moshi 中:

Moshi moshi = new Moshi.Builder()
.add(new RealmListJsonAdapterFactory())
.build();

进一步使用,如果您使用的是 Retrofit:

Retrofit retrofit = new Retrofit.Builder()
            .baseUrl(API.ENDPOINT)
            .addConverterFactory(MoshiConverterFactory.create(moshi))
            .build();

推荐阅读