我遇到了问题,我不知道如何解决它。 在我的应用程序打开pdf阅读器之后,我有了这个崩溃日志
java.lang.RuntimeException: Parcelable encountered IOException writing serializable object (name = com.nicopasso.views.Box)
at android.os.Parcel.writeSerializable(Parcel.java:1394)
at android.os.Parcel.writeValue(Parcel.java:1341)
at android.os.Parcel.writeArrayMapInternal(Parcel.java:644)
at android.os.BaseBundle.writeToParcelInner(BaseBundle.java:1313)
at android.os.Bundle.writeToParcel(Bundle.java:1034)
at android.os.Parcel.writeBundle(Parcel.java:669)
at android.support.v4.app.FragmentState.writeToParcel(Fragment.java:136)
at android.os.Parcel.writeTypedArray(Parcel.java:1197)
at android.support.v4.app.FragmentManagerState.writeToParcel(FragmentManager.java:381)
at android.os.Parcel.writeParcelable(Parcel.java:1363)
at android.os.Parcel.writeValue(Parcel.java:1268)
at android.os.Parcel.writeArrayMapInternal(Parcel.java:644)
at android.os.BaseBundle.writeToParcelInner(BaseBundle.java:1313)
at android.os.Bundle.writeToParcel(Bundle.java:1034)
at android.os.Parcel.writeBundle(Parcel.java:669)
at android.app.ActivityManagerProxy.activityStopped(ActivityManagerNative.java:2919)
at android.app.ActivityThread$StopInfo.run(ActivityThread.java:3296)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5254)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
Caused by: java.io.NotSerializableException: android.widget.LinearLayout
at java.io.ObjectOutputStream.writeNewObject(ObjectOutputStream.java:1344)
at java.io.ObjectOutputStream.writeObjectInternal(ObjectOutputStream.java:1651)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1497)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1461)
at java.io.ObjectOutputStream.writeFieldValues(ObjectOutputStream.java:959)
at
....
....
问题似乎在于LinearLayout(我的Box类扩展了LinearLayout),它没有实现Serializable接口。
Box类:
public class Box extends LinearLayout implements BoxInterface, Serializable {
private transient Context mContext;
public Box(Integer boxId, Context context) {
super(context);
mContext = context;
init(boxId);
}
private void init(Integer boxId) {
View.inflate(mContext, R.layout.box, this);
mBoxId = boxId;
}
//other stuff...
}
有没有办法解决这个问题? 感谢
答案 0 :(得分:1)
您的类是否在视图层次结构中保留对LinearLayout或包含LinearLayout的其他视图的引用?
当您的活动进入后台时,操作系统会尝试序列化您活动的成员变量,以便将它们存储在Bundle中,因此当它返回到前台时您可以重新生成它。现状。
但是在某个地方你保留对LinearLayout(或带有LinearLayout的视图)的引用,而这些引用并没有实现Serializable,所以你得到了这个例外。