当前位置: 首页 > 知识库问答 >
问题:

JAVAlang.RuntimeException:Parcelable在写入可序列化对象时遇到IOException

佘茂才
2023-03-14

我的应用程序的某些实例出现以下错误:

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

我不知道如何复制这一点,但看看stacktrace,它似乎是在应用程序停止时发生的。

我真的不明白为什么android试图序列化/打包我的片段,我没有在任何地方实现onSaveInstanceState/onRestoreInstanceState。

谁能帮帮我吗?

谢谢,卢卡

编辑:谢谢你的回答。不,我没有任何视图的自定义输入,

可能是解决此错误的方法,重写上SaveInstanceState而不调用suoer.onSaveInstanceState?

共有1个答案

鲁鸿朗
2023-03-14

来自官方文件

默认实现通过在层次结构中具有id的每个视图上调用onSaveInstanceState(),并通过保存当前聚焦视图的id(所有这些都由onRestoreInstanceState(Bundle)的默认实现恢复),为您处理大部分UI每个实例状态。

您是否有自定义视图实现,或者使用新字段扩展基础视图,并在片段中使用它?

 类似资料:
  • 我得到"Parcelable遇到IOExctive编写序列化对象"错误在这个代码 这也是我的细节类: 在command之前,一切都很好,有人知道为什么吗?

  • 问题内容: 我想使用实现的DataWrapper将ArrayList对象传递给另一个活动。 我遵循此处提供的答案:将用户定义对象的arraylist传递给Intentandroid。 我开始从另一个活动库的。这就是我传递ArrayList对象的方式: 我实现了DataWrapper类,如下所示: 并得到错误。这是我的Logcat: 我在上面的链接中遵循了答案(通过数组列表对象),但得到了错误,是什

  • 在我的Android应用程序中,我想将我的自定义对象传递给另一个活动。我正在使用意图 在调用活动 我也在我的模型类中实现了Serilizable。但是当我运行应用程序时,它显示 JAVAlang.RuntimeException:Parcelable在写入可序列化对象时遇到IOException 日志显示了这一点

  • 我正在编程一个简单的Java gmail客户端来完成我的a级项目。当下面的代码段运行时,我总是得到一个错误。我找不出为什么会有错误。 错误是: Java.io.NotSerializableException:用户在Java.io.ObjectOutputStream.WriteObject0(ObjectOutputStream.Java:1184)在Java.io.ObjectOutputSt

  • 问题内容: 假设我有一个可序列化的类。 我想通过套接字将其传输到另一台计算机,从接收的字节重建该计算机。 我怎样才能做到这一点? 问题答案: 准备要发送的字节数组: 从字节数组创建对象:

  • 我正在试验Stanford CoreNLP库,我想序列化主要的StanfordCoreNLP管道对象,尽管它抛出了一个java.io.NotSerializableException。 完整故事:每当我运行我的实现时,将管道注释器和分类器加载到内存中大约需要15秒。最终进程的内存约为600MB(很容易小到可以存储在我的机箱中)。我想在第一次创建管道后保存它,这样我就可以在以后将其读入内存。 然而,