事件背景
有个实体类,利用Parcelable序列化保存在了本地,在新版本上新增了一个字段后,反序列化取数据时,报错如下:
java.lang.RuntimeException: Parcel android.os.Parcel: Unmarshalling
unknown type code xx at offset xx
代码示意
// 旧版本数据结构
public class ParcelableObject implements Parcelable {
private int i;
private float f;
public ParcelableObject() {
}
// getter & setter
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeInt(this.i);
dest.writeFloat(this.f)
}
protected ParcelableObject(Parcel in) {
this.i = in.readInt();
this