java.lang.RuntimeException:可打包遇到IOException写入可序列化

时间:2018-11-24 15:41:39

标签: android android-intent serializable android-bundle

我有一个arraylist,我想从1个活动发送到另一个活动,我正在使用可序列化的程序,但最终收到以下错误消息。

  

java.lang.RuntimeException:遇到Parcelable IOException   编写可序列化的对象(名称= com.app ...)

我还在SO上对此问题进行了评论,其中大多数人说Serialized类中定义的所有类也应实现Serializable,但这里{{ 1}},'RectF',Path不是我的类,它们是android类,在这些类中我无法实现Matrix

这是我将阵列列表从1个活动发送到另一个活动的方式。

Serializable

这是我的课程。

Intent intent= new Intent(MainActivity.this, DetailsActivity.class);
        Bundle bundle= new Bundle();
        bundle.putSerializable("PATH_LIST", pathsList);
        bundle.putString("FILE_NAME", fileName);
        intent.putExtras(bundle);
        startActivity(intent);

1 个答案:

答案 0 :(得分:2)

  

这里的Path,'RectF',Matrix不是我的类,它们是android类,并且我不能在这些类中实现Serializable。

然后在Serializable类中没有用于它们的字段。

要么:

  • 这里没有单独的活动,而是做了其他事情(例如,一个活动和两个片段),从而避免了使用Intent

  • 不要在活动之间传递此数据,而应使用不同的应用程序体系结构(例如,数据不由任何一个活动保存,而是由两个活动都可以交谈的存储库保存),或

  • 创建一些可以构成ParceableSerializable的数据结构,从中可以使用其所需的类重建模型对象,并传递Parcelable / {{ 1 {}中的数据结构,而不是Serializable中的数据结构