2

RealmObjects (およびLombok ) でFragmentArgsParcelerを使用していて、次のビルド エラーが発生します。

Error:(73, 70) error: Parceler: Unable to find read/write generator for type io.realm.RealmList<backend.model.Invitation> for backend.model.ProjectInfo#invitations

私のクラスProjectInfoは次のようになります

@Parcel(implementations = {ProjectInfoRealmProxy.class}, value = Parcel.Serialization.BEAN, analyze = {ProjectInfo.class})
public class ProjectInfo extends RealmObject
{
@Getter @Setter @PrimaryKey long projectId;

@ParcelPropertyConverter(RealmListParcelConverter.class) @Getter @Setter @Ignore RealmList<Invitation> invitations;
@ParcelPropertyConverter(RealmListParcelConverter.class) @Getter @Setter         RealmList<Submission> submissions;
}

Classes Submission と Invitation はどちらも非常に単純なデータ構造であり、拡張もされています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;
    }
}

私は何を間違っていますか?

更新 1

招待クラス

@Parcel(implementations = {InvitationRealmProxy.class}, value = Parcel.Serialization.BEAN, analyze = {Invitation.class})
public class Invitation extends RealmObject
{
    @Getter @Setter long    accountId;
    @Getter @Setter long    projectId;
    @Getter @Setter boolean declined;
    @Getter @Setter String  name;
    public Invitation() {}
}

そして提出クラス

@Parcel(implementations = {SubmissionRealmProxy.class}, value = Parcel.Serialization.BEAN, analyze = {Submission.class})
public class Submission extends RealmObject
{
    @Getter @Setter @PrimaryKey long    id;
    @Getter @Setter             long    creator;
    @Getter @Setter             float   length;

    public Submission() {}

}

UPDATE2

これは、使用した場合にのみ発生します

@Parcel(implementations = {ProjectInfoRealmProxy.class}, value = Parcel.Serialization.BEAN, analyze = {ProjectInfo.class})

シンプルなものを使用する場合

@Parcel

クラッシュで実行時にクラッシュします

org.parceler.ParcelerRuntimeException: Unable to find generated Parcelable class for io.realm.ProjectInfoRealmProxy

更新 3

このように @Args アノテーション内で区画を使用しています

@Arg(bundler = ParcelerArgsBundler.class) ProjectInfo projectInfo;
4

0 に答える 0