Parcelable遇到ClassClassNotFoundException,读取Serializable对象

时间:2011-02-01 20:25:34

标签: java android serializable parcelable

我实现了一个实现Serializable对象的类。

public class SaveMe implements Serializable {
    private static final long serialVersionUID = 1L;
    private String someValue1;
    private String someValue2;
} 

但是每当我尝试在Bundle中使用它时,我都会遇到这个异常:

 Parcelable encounteredClassNotFoundException reading a Serializable object
     at android.os.Parcel.readSerializable(Parcel.java:1951)
     at android.os.Parcel.readValue(Parcel.java:1822)
     at android.os.Parcel.readMapInternal(Parcel.java:2008)
     at android.os.Bundle.unparcel(Bundle.java:208)
     at android.os.Bundle.getString(Bundle.java:1034)

我做错了什么?

修改

嗯...使用Parcelable时的类似问题:

Class not found when unmarshalling

1 个答案:

答案 0 :(得分:0)

我相信你可能会遇到类加载器问题。在读取序列化对象之前,需要在Bundle上调用setClassLoader()。

确保在阅读捆绑包之前致电setClassLoader(SaveMe.class.getClassLoader())

如果编译器在编译时找不到SaveMe,那么确保目标应用程序中缺少类Damp建议。

有关详细信息,请参阅此答案: Parcelable inside bundle which is added to Parcel