【问题标题】:Bad Parcelable Exception错误的 Parcelable 异常
【发布时间】:2012-11-19 09:12:02
【问题描述】:

我已经使用 Fragment 与一个 Fragment Activity 进行通信,这个 Fragment Activity 传递它的引用来处理 Fragment 中的点击事件,如下所示。

 Bundle tempBundle = new Bundle();
tempBundle.putParcelable("Interface", (Parcelable) new ClickHandler());

在哪里

class ClickHandler implements ItemClickListener, Parcelable
{
 }

这工作得很好,当我浏览应用程序时,只有当我退出应用程序(按 HOME 键)和几分钟后我从最近使用的应用程序返回到应用程序时(注意立即返回应用程序不会导致异常)。

有没有人遇到过这样的问题

【问题讨论】:

    标签: android fragment android-fragmentactivity badparcelableexception


    【解决方案1】:

    我也遇到了这个问题,我花了很多时间才弄清楚错误发生在哪里。我所做的是遵循此question 已接受答案中的建议。

    我做的第一步是寻找应用程序正在从与发生崩溃的类相关的savedInstanceState 恢复数据的实例。我只是按照我提供的链接中的建议设置了那些 savedInstanceState 包的类加载器。虽然第一次没有用。崩溃仍然发生,但它已更改其错误日志堆栈跟踪,因此我的代码中没有任何行被指出。然后我在我的自定义 parcelable 对象中寻找可能的空值,并将它们设置为非空值。这可能会很痛苦,尤其是当您在代码中的某些地方检查 null 时。你只需要咬紧牙关去做,因为显然,Android 不喜欢 parcelables 中的 null 值。

    做了这两个之后,它仍然对我不起作用。所以我看得更远,我注意到我实际上是从适配器中的捆绑包中恢复实例。一些适配器会这样做,例如,FragmentStatePagerAdapter。我只是设置了那个包的类加载器,然后它就为我解决了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-12-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-03
      相关资源
      最近更新 更多