Parcelable使用时java.lang.RuntimeException: Parcel android.os.Parcel@xxxx: Unmarshalling unknown typ...

WX20201103-152224.png
  如图所示,开发过程中遇到了一个不太常见的问题,问题虽然不大,但是花了我不少时间查找资料才找到了问题的所在,所以特此记录一下。
这个问题是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);
    }

你可能感兴趣的:(Parcelable使用时java.lang.RuntimeException: Parcel android.os.Parcel@xxxx: Unmarshalling unknown typ...)