我一直收到此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版本上一样。
答案 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
。