パーセラブルは、シリアライズ可能なオブジェクト(name = xxx)の書き込み中にIOExceptionを検出しました



Parcelable Encountered Ioexception Writing Serializable Object




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.execStartActivity(Instrumentation.java:1373)
at android.app.Activity.startActivityForResult(Activity.java:2817)
at android.app.Activity.startActivity(Activity.java:2923)
at android.widget.AdapterView.performItemClick(AdapterView.java:284)
at android.widget.ListView.performItemClick(ListView.java:3382)
at android.widget.AbsListView$PerformClick.run(AbsListView.java:1696)
at android.os.Handler.handleCallback(Handler.java:587)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.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.ObjectOutputStream.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)


アクティビティ間でカスタムデータを渡すには、SerializableまたはParcelableインターフェイスを実装する必要があります
バンドルputSerializable(String、Serizlizable)データを使用することも、インテントputExtrr(String、Serizlizable)データを直接使用することもできます。
複数のカスタムタイプのデータを渡す必要があるため、必要なカスタムデータをカプセル化するデータクラスValueを作成しました。このクラスは、Serizlizableインターフェースを実装します。しかし、putExtraにエラーがありました。

後で、アクティビティ間でデータを渡すには、すべてのコンテンツがシリアル化可能なインターフェイスを実装する必要があり、Valueにカプセル化されたカスタムタイプのデータはこのインターフェイスを実装しないため、エラーが発生することがわかりました。
次に、カスタムタイプにシリアル化可能なインターフェイスを実装させますが、問題はありません。