为啥报这个错呢?
今天 app 突然闪退了,看了下 log,爆出了题目上的问题
AndroidRuntime error: Parcel: unable to marshal value
那就无脑搜一波呗
找到了 stackoverflow 地址
https://stackoverflow.com/questions/3818745/androidruntime-error-parcel-unable-to-marshal-value
报错的原因是: bean 没有序列化
然后检查我的项目,发现我在进行 intent 跳转的时候,只给其中一个 bean 实现了 serializable 接口,而另外一个 bean 竟然没有实现,所以就报错了
解决方法
让这个 bean 实现 serializable 接口;
如果这个 bean 是内部类,最好将这个大类所有的类都实现这个接口。
题外话
这个爆出来的问题并不是很直接,导致我完全没有头绪,只能搜一波了
如果能懂 marshal
这个单词的意思,其实能够猜出来一些了,marshal
有整理
的意思,那么报错的中文意思是无法整理一些值
,无法整理,那就让这些值按照 java 现有的接口排序就行了,继承 Serializable、或者 Parcelable 接口即可。
网友评论