使用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