Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/203.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 找不到生成的可包裹类_Android_Realm_Parceler - Fatal编程技术网

Android 找不到生成的可包裹类

Android 找不到生成的可包裹类,android,realm,parceler,Android,Realm,Parceler,我正在尝试在我的android项目中使用Parceler。 这是我的歌曲模型 @Parcel(implementations = {SongRealmProxy.class}, value = Parcel.Serialization.BEAN, analyze = {Song.class}) public class Song extends RealmObject { @PrimaryKey public String id; public Stri

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

@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;
}
当我尝试使用像这样的捆绑来扭曲这些歌曲模型时

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.

请帮我解决这个问题。

包裹类应该是这样的:

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;
    }

}
public类BrushData实现可包裹{
公共静态最终创建者=新创建者(){
@凌驾
公共笔刷数据createFromParcel(地块中){
返回新数据(在中);
}
@凌驾
公共数据[]新数组(整数大小){
返回新的笔刷数据[大小];
}
};
私有静态最终int版本=1;
@序列化名称(“图标”)
私有字符串图标;
@序列化名称(“效果”)
私人ArrayList效应;
私人数据(包裹){
如果(包裹!=null){
阅读包裹(包裹);
}
}
@凌驾
公共int描述内容(){
返回0;
}
private void readFromParcel(地块位于中){
if(in.readInt()==版本){
icon=in.readString();
}
}
公共无效书面包裹(包裹,内部i){
包裹书写(版本);
包裹。写线(图标);
}
公共字符串getIcon(){
返回图标;
}
公共无效设置图标(字符串图标){
this.icon=图标;
}
公共阵列列表getEffects(){
回报效应;
}
公共无效设置效果(ArrayList效果){
这个效应=效应;
}
}

不,我用的是那台包裹机。试图打包我的真实对象。@MinKhantLu你收到了吗solution@saintjab我决定用另一种方式而不是这个。配置看起来正确,你在用proguard吗?不,我还没有用过proguard@JohnEricksenNext需要检查的是,您的构建中有Parceler注释处理器,它实际上构建了java文件。你能检查你的gradle构建和临时构建输出位置吗?