引起:java.io.NotSerializableException:android.os.Handler

时间:2014-01-16 14:00:33

标签: android android-fragments serializable notserializableexception

我一直收到此Serializable错误。我的两个类都实现了它。我似乎无法找到问题。我经历过所有课程,但仍无法找到原因。它只发生在较旧的Android版本2.3及更低版本上。似乎在4.0 +上找到工作?

更新

这个问题对我来说是正确的。

这次我得到

  

java.lang.RuntimeException:Parcelable遇到IOException写入可序列化对象(name = .... datastructures.model.PortfolioAccount)

PorfolioAccount禁止所有GSON对象和变量。

由此引起的

Caused by: java.io.NotSerializableException: android.os.Handler

我已经检查了所有需要Serializable的类,但仍然无法找到任何内容。就像之前它只发生在旧的Android OS版本上一样。

3 个答案:

答案 0 :(得分:4)

我相信你的对象有一个不可序列化的属性。确保您的类属性都在实现Serializable接口。 如果这不是问题,我建议实现Parcelable接口。

答案 1 :(得分:0)

我正在挖掘代码并设法找到一个没有实现它的类!问题是我在两个类之间共享这个数据,而Logcat抛出了关于已实现可序列化的类的错误,而不是相反!

答案 2 :(得分:-1)

很可能你正在使用旧版Android不支持的异常处理或方法调用。

让我举个例子:

因此,某些新的Android 4功能未在Android 2.3中实现,如ImageView.setLayerType。为了避免运行时错误:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
   setLayerType(View.LAYER_TYPE_SOFTWARE, null);
}

这种方法也应该用于异常处理:

} catch (NetworkOnMainThreadException nomte) {
   // log this exception
} catch (SocketTimeoutException socketTimeoutException) {
   // log this exception
}

NetworkOnMainThreadException未在Android 2.3中实现,因此当加载(而不是之前!)时,运行时会发生异常java.lang.VerifyError