如图所示,开发过程中遇到了一个不太常见的问题,问题虽然不大,但是花了我不少时间查找资料才找到了问题的所在,所以特此记录一下。
这个问题是parcelable使用过程中常见的问题,场景是传递数据参数(如下代码的宽和高)的增加,由于本人粗心,只在writeToParcel方法中增加了字段的写入,并没有在从parcel获取的时候加上该字段所以报错。
private MediaItem(Parcel source) {
id = source.readLong();
mimeType = source.readString();
uri = source.readParcelable(Uri.class.getClassLoader());
thumbUri = source.readParcelable(Uri.class.getClassLoader());
size = source.readLong();
duration = source.readLong();
heigth = source.readInt();
width = source.readInt();
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeLong(id);
dest.writeString(mimeType);
dest.writeParcelable(uri, 0);
dest.writeParcelable(thumbUri, 1);
dest.writeLong(size);
dest.writeLong(duration);
dest.writeInt(heigth);
dest.writeInt(width);
}