我在实现 Parcelable 的类中有以下内容:
private static final long serialVersionUID = 66;
private HashMap<Integer, Bitmap> mBitmaps;
private HashMap<Integer, Drawable> mDrawables;
private Context mContext;
和:
@Override
public void writeToParcel(Parcel dest, int flags) {
// TODO Auto-generated method stub
dest.writeValue(mBitmaps);
dest.writeValue(mDrawables);
dest.writeValue(mContext);
dest.writeByte((byte) (mActive ? 0x01 : 0x00));
}
我得到错误:
java.lang.RuntimeException: Parcel: unable to marshal value android.app.Application@4051cfe0
at android.os.Parcel.writeValue(Parcel.java:1132)
at com.example.example.ImageManager.writeToParcel(ImageManager.java:82)
dest.writeValue(mContext); is on line 82.
最佳答案
如本回答所述:https://stackoverflow.com/a/6112919/7721253
您正在尝试向包裹中添加不可序列化的对象。您正在序列化的对象中的对象也必须是可序列化的。
关于Android - Parcelable 类中的上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23005431/