Reputation: 1
Some instances of my app are getting this error:
java.lang.RuntimeException: Parcelable encountered IOException writing serializable object (name = for.super)
at android.os.Parcel.writeSerializable(Parcel.java:1181)
at android.os.Parcel.writeValue(Parcel.java:1135)
at android.os.Parcel.writeMapInternal(Parcel.java:493)
at android.os.Bundle.writeToParcel(Bundle.java:1612)
at android.os.Parcel.writeBundle(Parcel.java:507)
at android.support.v4.app.FragmentState.writeToParcel(SourceFile:132)
at android.os.Parcel.writeTypedArray(Parcel.java:1004)
at android.support.v4.app.FragmentManagerState.writeToParcel(SourceFile:368)
at android.os.Parcel.writeParcelable(Parcel.java:1156)
at android.os.Parcel.writeValue(Parcel.java:1075)
at android.os.Parcel.writeMapInternal(Parcel.java:493)
at android.os.Bundle.writeToParcel(Bundle.java:1612)
at android.os.Parcel.writeBundle(Parcel.java:507)
at android.support.v4.app.FragmentState.writeToParcel(SourceFile:133)
at android.os.Parcel.writeTypedArray(Parcel.java:1004)
at android.support.v4.app.FragmentManagerState.writeToParcel(SourceFile:368)
at android.os.Parcel.writeParcelable(Parcel.java:1156)
at android.os.Parcel.writeValue(Parcel.java:1075)
at android.os.Parcel.writeMapInternal(Parcel.java:493)
at android.os.Bundle.writeToParcel(Bundle.java:1612)
at android.os.Parcel.writeBundle(Parcel.java:507)
at android.app.ActivityManagerProxy.activityStopped(ActivityManagerNative.java:1931)
at android.app.ActivityThread.handleStopActivity(ActivityThread.java:2866)
at android.app.ActivityThread.access$900(ActivityThread.java:123)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1164)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4424)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:817)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:584)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.io.NotSerializableException: android.support.v4.app.FragmentManagerImpl
at java.io.ObjectOutputStream.writeNewObject(ObjectOutputStream.java:1364)
at java.io.ObjectOutputStream.writeObjectInternal(ObjectOutputStream.java:1671)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1517)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1481)
at java.io.ObjectOutputStream.writeFieldValues(ObjectOutputStream.java:979)
at java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:368)
at java.io.ObjectOutputStream.writeHierarchy(ObjectOutputStream.java:1074)
at java.io.ObjectOutputStream.writeNewObject(ObjectOutputStream.java:1404)
at java.io.ObjectOutputStream.writeObjectInternal(ObjectOutputStream.java:1671)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1517)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1481)
at java.io.ObjectOutputStream.writeFieldValues(ObjectOutputStream.java:979)
at java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:368)
at java.io.ObjectOutputStream.writeHierarchy(ObjectOutputStream.java:1074)
at java.io.ObjectOutputStream.writeNewObject(ObjectOutputStream.java:1404)
at java.io.ObjectOutputStream.writeObjectInternal(ObjectOutputStream.java:1671)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1517)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1481)
at java.io.ObjectOutputStream.writeFieldValues(ObjectOutputStream.java:979)
at java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:368)
at java.io.ObjectOutputStream.writeHierarchy(ObjectOutputStream.java:1074)
at java.io.ObjectOutputStream.writeNewObject(ObjectOutputStream.java:1404)
at java.io.ObjectOutputStream.writeObjectInternal(ObjectOutputStream.java:1671)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1517)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1481)
at java.io.ObjectOutputStream.writeFieldValues(ObjectOutputStream.java:979)
at java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:368)
at java.io.ObjectOutputStream.writeHierarchy(ObjectOutputStream.java:1074)
at java.io.ObjectOutputStream.writeNewObject(ObjectOutputStream.java:1404)
at java.io.ObjectOutputStream.writeObjectInternal(ObjectOutputStream.java:1671)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1517)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1481)
at java.io.ObjectOutputStream.writeFieldValues(ObjectOutputStream.java:979)
at java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:368)
at java.io.ObjectOutputStream.writeHierarchy(ObjectOutputStream.java:1074)
at java.io.ObjectOutputStream.writeNewObject(ObjectOutputStream.java:1404)
at java.io.ObjectOutputStream.writeObjectInternal(ObjectOutputStream.java:1671)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1517)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1481)
at android.os.Parcel.writeSerializable(Parcel.java:1176)
... 32 more
I don't know how to replicate this, but looking at the stacktrace it seems happening when the app is getting stopped.
I really don't understand why android is trying to serialize/parcelize my fragments, I've not implemented onSaveInstanceState/onRestoreInstanceState anywhere.
Could someone help me please?
Thanks Luca
Edit: Thanks for your answer. No, i don't have any custom imlementation of any View,
Could be a way of resolving this error, overriding onSaveInstanceState without calling the suoer.onSaveInstanceState ?
Upvotes: 0
Views: 3718
Reputation: 5012
The default implementation takes care of most of the UI per-instance state for you by calling onSaveInstanceState() on each view in the hierarchy that has an id, and by saving the id of the currently focused view (all of which is restored by the default implementation of onRestoreInstanceState(Bundle)).
Do you have a custom View implementation or extend a base View with new fields and make use of it in your Fragment?
Upvotes: 1