error: Parceler: невозможно найти генератор чтения / записи для типа io.realm.RealmList

Я программирую проект, используя Kotlin:

  • Версия Котлина: 1.1.3-2
  • Версия для парсера 1.1.9
  • Realm версия 3.2.0

Я использую Parceler для FragmentArgs с RealmObjects и получаю следующий сбой.
Parceler: невозможно найти генератор чтения / записи для типа io.realm.RealmList

  1. Моя работа в классе:
@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() 
  1. Класс RealmString выглядит так: Мой класс RealmString.kt:
 @Parcel(value = Parcel.Serialization.BEAN, analyze = arrayOf(RealmString::class)) open class RealmString( open var value: String = "" ) : RealmObject() 
  1. Класс 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; } } 

ОБНОВИТЬ

Я попробовал добавить реализации = RealmStringRealmProxy и реализации = JobRealmProxy, все равно получаю ту же проблему.

ОБНОВЛЕНИЕ 2

Обновление версии Realm до версии 3.5.0 по- прежнему вызывает ту же проблему.

    наконец, я получил одно решение для этого ответа. Все, что вам нужно, это добавить setter в мою модель Job . Здесь я приведу весь код:

    1. Моя работа в классе:
     @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 = "", ) :RealmObject(){ @ParcelPropertyConverter(RealmStringListParcelConverter::class) open var imageUrls: RealmList<RealmString>? = null set} 
    1. Класс RealmString выглядит так: Мой класс RealmString.kt:
     @Parcel(value = Parcel.Serialization.BEAN, analyze = arrayOf(RealmString::class)) open class RealmString( open var value: String = "" ) : RealmObject() 
    1. Класс RealmStringListParcelConverter выглядит так:
      class RealmStringListParcelConverter : RealmListParcelConverter<RealmString>() { override fun itemToParcel(input: RealmString?, parcel: Parcel?) { parcel?.writeParcelable(Parcels.wrap(RealmString::class.java, input), 0) } override fun itemFromParcel(parcel: Parcel?): RealmString { return Parcels.unwrap(parcel?.readParcelable<Parcelable>(RealmString::class.java.classLoader)) } }