4

我有以下产生错误的代码:Error:Parceler: Unable to find read/write generator for type io.realm.Realm for io.realm.RealmObject.realm

没有 . 它一切正常extends RealmObject,但是我想使用 Realm 轻松放入数据库。有没有办法排除 RealmObject 字段,只使用@Parcel 的基本 pojo 字段?

@Parcel
public class Feed extends RealmObject{
    int id;
    public String text;
    public String time_created;
    String time_modified;
    int comments_count;
    int likes_count;
    String feed_type;
    int obj_id;
    String image;
    String user_name;
    String user_earthmile_points;
    boolean liked;
    boolean commented;
    boolean is_private;
    String url;
    int feed_creator_id;

   }
4

2 回答 2

14

编辑#2:实际上,我找到了一种让它工作的方法:)。请参阅下面的更新答案。

编辑#1:虽然应用程序编译得很好,但它在尝试实际创建一个Parcel错误时崩溃:org.parceler.ParcelerRuntimeException: Unable to create ParcelableFactory for io.realm.FeedRealmProxy. Realm 团队已经正式承认,目前无法ParcelableRealmObjects 上实现。目前尚不清楚是否/何时会解决此问题。


使用Parceler v0.2.16,您可以这样做:

@RealmClass      // required if using JDK 1.6 (unrelated to Parceler issue)
@Parcel(value = Parcel.Serialization.BEAN, analyze = { Feed.class })
public class Feed extends RealmObject {
    // ...
}

然后,使用Parcels.wrap(Feed.class, feed)而不是Parcels.wrap(feed)到处使用,否则您的应用程序将崩溃org.parceler.ParcelerRuntimeException: Unable to create ParcelableFactory for io.realm.FeedRealmProxy

于 2015-04-17T02:16:34.977 回答
1

所有扩展 RealmObject 的类都会有一个由注解处理器创建的匹配 RealmProxy 类。Parceler 必须知道这个类。请注意,在项目至少编译一次之前,该类不可用。

@Parcel(implementations = { PersonRealmProxy.class },
    value = Parcel.Serialization.BEAN,
    analyze = { Person.class })
public class Person extends RealmObject {
// ...}
于 2016-12-05T09:30:25.120 回答