Я реализовал класс, который реализует объект 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)
Что я делаю неправильно?
Edit
Hm... Аналогичная проблема при использовании Parcelable:
Class not found when unmarshalling
Я считаю, что вы можете столкнуться с проблемами загрузчика классов. Вам нужно вызвать setClassLoader() в Bundle, прежде чем вы прочитаете из них сериализованные объекты.
Перед чтением из пакета убедитесь, что вы вызываете setClassLoader(SaveMe.class.getClassLoader())
.
Если компилятор не может найти SaveMe при компиляции, то наверняка этот класс отсутствует в целевом приложении в качестве Damp.
См. этот ответ для получения дополнительной информации: Исправляемый внутренний пакет, который добавлен в парцеллу