我正在使用 Kotlin 编写一个项目:
- Kotlin 版本:1.1.3-2
- Parcerler 版本 1.1.9
- 领域版本 3.2.0
我正在将 Parceler 用于带有 RealmObjects 的 FragmentArgs 并出现以下崩溃。
Parceler:找不到 io.realm.RealmList 类型的读/写生成器
- 我的班级工作是这样的:
@Parcel(value = Parcel.Serialization.BEAN, analyze = arrayOf(Job::class))
open class Job(
@PrimaryKey open var tweetId: Long? = -1L,
open var text: String = "",
open var title: String = "",
open var longitude: Double? = null,
open var latitude: Double? = null,
open var link: String = "",
@ParcelPropertyConverter(RealmStringListParcelConverter::class)
open var imageUrls: RealmList<RealmString>? = null
) : RealmObject()
- 类 RealmString 看起来像这样: 我的类 RealmString.kt 像这样:
@Parcel(value = Parcel.Serialization.BEAN, analyze = arrayOf(RealmString::class))
open class RealmString(
open var value: String = ""
) : RealmObject()
- RealmListParcelConverter 类如下所示:
public class RealmListParcelConverter implements TypeRangeParcelConverter<RealmList<? extends RealmObject>, RealmList<? extends RealmObject>>
{
private static final int NULL = -1;
@Override
public void toParcel(RealmList<? extends RealmObject> input, Parcel parcel)
{
parcel.writeInt(input == null ? NULL : input.size());
if(input != null)
{
for(RealmObject item : input)
{
parcel.writeParcelable(Parcels.wrap(item), 0);
}
}
}
@Override
public RealmList fromParcel(Parcel parcel)
{
int size = parcel.readInt();
RealmList list = new RealmList();
for(int i = 0; i < size; i++)
{
Parcelable parcelable = parcel.readParcelable(getClass().getClassLoader());
list.add((RealmObject) Parcels.unwrap(parcelable));
}
return list;
}
}
更新
我试过 add implementations = RealmStringRealmProxy 和 implementations = JobRealmProxy ,仍然遇到同样的问题。
更新 2
将Realm 版本更新到3.5.0,仍然遇到同样的问题。