使用Parcelable出现的几个问题


1.Caused by: android.os.BadParcelableException: ClassNotFoundException when unmarshalling : com.MyClass

原因:这个类我是通过将其放入Bundle中传递的,所以在从Bundle中取的时候需要先设置ClassLoader:

mBundle.setClassLoader(MyClass.class.getClassLoader());
myClass = mBundle.getParcelable( "MY_CLASS" );

2.Caused by: java.lang.NullPointerException: expected receiver of type com.yourpackagename.MyClass, but got null

W/System.err(3558): at java.lang.reflect.Field.getField(Native Method)
W/System.err(3558): at java.lang.reflect.Field.get(Field.java:269)
W/System.err(3558): at android.os.Parcel.readParcelable(Parcel.java:1955)
W/System.err(3558): at android.os.Parcel.readParcelableArray(Parcel.java:2008)

原因:是因为在 class :MyClass中的CREATOR成员变量 没有定义成静态的原因

public static final Parcelable.Creator<MyClass> CREATOR = new Parcelable.Creator<MyClass>() {

....

}


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM