找不到生成的Parcelable类 [英] Unable to find generated Parcelable class

查看:225
本文介绍了找不到生成的Parcelable类的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试在我的android项目中使用Parceler. 这是我的歌曲模特.

I am trying to use Parceler in my android project. This is my Song model.

@Parcel(implementations = {SongRealmProxy.class},
       value = Parcel.Serialization.BEAN,
       analyze = {Song.class})
public class Song extends RealmObject {

  @PrimaryKey
  public String id;
  public String isrc;
  public String songName;
  public String artistName;
  public String album_id;
  public String albumArtUrl;
  public String genre_id;
  public String genreName;
  public String releaseYear;
  public String price;
  public String lyrics;
  public String demo;
  public int explicit;
}

当我尝试像这样使用捆绑软件扭曲这些歌曲模型时.

When I try to warp these song model using bundle like this.

b.putParcelable(DATA_PARAM, Parcels.wrap(song));

我一直遇到此错误.

org.parceler.ParcelerRuntimeException: Unable to find generated Parcelable class for com.devhousemyanmar.juketrill.models.Song, verify that your class is configured properly and that the Parcelable class com.devhousemyanmar.juketrill.models.Song$$Parcelable is generated by Parceler.

请帮助我解决这个问题.

Please help me to solve this problem.

推荐答案

可拆分类应如下所示:

package com.yourpackagename;

package com.yourpackagename;

public class BrushData implements Parcelable {

    public static final Creator<BrushData> CREATOR = new Creator<BrushData>() {
        @Override
        public BrushData createFromParcel(Parcel in) {
            return new BrushData(in);
        }

        @Override
        public BrushData[] newArray(int size) {
            return new BrushData[size];
        }
    };
    private static final int VERSION = 1;
    @SerializedName("icon")
    private String icon;
    @SerializedName("effects")
    private ArrayList<String> effects;

    private BrushData(Parcel parcel) {
        if (parcel != null) {
            readFromParcel(parcel);
        }
    }

    @Override
    public int describeContents() {
        return 0;
    }

    private void readFromParcel(Parcel in) {
        if (in.readInt() == VERSION) {
            icon = in.readString();
        }
    }

    public void writeToParcel(Parcel parcel, int i) {
        parcel.writeInt(VERSION);
        parcel.writeString(icon);
    }

    public String getIcon() {
        return icon;
    }

    public void setIcon(String icon) {
        this.icon = icon;
    }

    public ArrayList<String> getEffects() {
        return effects;
    }

    public void setEffects(ArrayList<String> effects) {
        this.effects = effects;
    }

}

这篇关于找不到生成的Parcelable类的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆