Parcelable encountered IOException writing serializable object (name = xxx)
Blog type:
Java code
- Java. lang. RuntimeException: Parcelable encountered IOException writing serializable object (name = xxx)
- At android. OS. Parcel. writeSerializable (Parcel. java: 1160)
- At android. OS. Parcel. writeValue (Parcel. java: 1114)
- At android. OS. Parcel. writeMapInternal (Parcel. java: 479)
- At android. OS. Bundle. writeToParcel (Bundle. java: 1552)
- At android. OS. Parcel. writeBundle (Parcel. java: 493)
- At android. content. Intent. writeToParcel (Intent. java: 5438)
- At android. app. ActivityManagerProxy. startActivity (ActivityManagerNative. java: 1288)
- At android.app.Instrumentation.exe cStartActivity (Instrumentation. java: 1373)
- At android. app. Activity. startActivityForResult (Activity. java: 2817)
- At android. app. Activity. startActivity (Activity. java: 2923)
- At android. widget. AdapterView. javasmitemclick (AdapterView. java: 284)
- At android. widget. ListView. Upload mitemclick (ListView. java: 3382)
- At android. widget. AbsListView $ javasmclick. run (AbsListView. java: 1696)
- At android. OS. Handler. handleCallback (Handler. java: 587)
- At android. OS. Handler. dispatchMessage (Handler. java: 92)
- At android. OS. lorule. loop (lorule. java: 123)
- At android. app. ActivityThread. main (ActivityThread. java: 4627)
- At java. lang. reflect. Method. invokeNative (Native Method)
- At java. lang. reflect. Method. invoke (Method. java: 521)
- At com. android. internal. OS. ZygoteInit $ MethodAndArgsCaller. run (ZygoteInit. java: 868)
- At com. android. internal. OS. ZygoteInit. main (ZygoteInit. java: 626)
- At dalvik. system. NativeStart. main (Native Method)
- Caused by: java. io. NotSerializableException: org. mdx. activity. collaboration. CollaborationListActivity
- At java. io. ObjectOutputStream. writeNewObject (ObjectOutputStream. java: 1547)
- At java. io. ObjectOutputStream. writeObjectInternal (ObjectOutputStream. java: 1859)
- At java. io. ObjectOutputStream. writeObject (ObjectOutputStream. java: 1701)
- At java. io. ObjectOutputStream. writeObject (ObjectOutputStream. java: 1665)
- At java. io. ObjectOutputStream. writeFieldValues (ObjectOutputStream. java: 1153)
- At java. io. ObjectOutputStream. defaultWriteObject (ObjectOutputStream. java: 420)
- At java. io. objecttoutputstream. writeHierarchy (ObjectOutputStream. java: 1251)
- At java. io. ObjectOutputStream. writeNewObject (ObjectOutputStream. java: 1587)
- At java. io. ObjectOutputStream. writeObjectInternal (ObjectOutputStream. java: 1859)
- At java. io. ObjectOutputStream. writeObject (ObjectOutputStream. java: 1701)
- At java. io. ObjectOutputStream. writeObject (ObjectOutputStream. java: 1665)
- At android. OS. Parcel. writeSerializable (Parcel. java: 1155)
To transmit custom data between activities, implements Serializable or Parcelable interface is required.
You can use bundle putSerializable (String, Serizlizable) data or use intent putExtrr (String, Serizlizable) data directly.
I have a requirement to pass multiple custom data types, so I wrote a data class Value to encapsulate the custom data that I need. This class implements the Serizlizable interface. However, an error occurs during putExtra.
Later, I found that to transmit data between activities, all the content must implement the serializable interface, but a custom data encapsulated in my Value does not implement this interface, so an error occurs.
Then I set the custom type to implement the serializable interface.