2

我已经实现了一个实现 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
4

1 回答 1

0

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

确保setClassLoader(SaveMe.class.getClassLoader())在从包中读取之前调用。

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

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

于 2013-12-09T04:49:58.047 回答