活动与致命信号11(SIGSEGV)在0x00000200(代码= 1)崩溃

时间:2013-08-19 09:00:08

标签: android webview

我在这个网站上搜索了这个错误代码的很多答案。但是他们都没有真正帮助:(

在我的上下文中,我的活动有一个webview,它将从互联网上的某个地方加载新闻内容(文章)。 在多次移动到其他屏幕后,我收到了这个信号 在我的应用程序崩溃之前Fatal signal 11 (SIGSEGV) at 0x00000200 (code=1)。 在这种情况下,堆栈跟踪中没有其他信息似乎有用。

之前有人遇到过这个问题吗?任何线索都表示赞赏。

2 个答案:

答案 0 :(得分:2)

当内存损坏时会发生SIGSEV错误。

您解决的内存块损坏的原因有很多。 它可能是有缺陷的硬件或很可能是错误的代码

追踪问题的两件事

1)在具有相同操作系统版本的其他设备(或仿真器)上尝试您的代码。 如果一切都很好,那么你知道你有硬件问题。

2)使用崩溃的活动中的Log.d语句跟踪导致问题的代码行,并仔细检查日志cat输出以查看代码获取的数据。 在log.d消息中使用“@@@@”,例如Log.d("TAG", "@@@@ onCreate 1");使您的日志消息从垃圾中的其余垃圾中脱颖而出。

一旦您能够找到导致问题的代码行,那么请仔细查看该行中使用的变量,以确保它们不为空,因为这将是最可能的原因。< / p>

还要确保所有线程都已在onPause或onDestroy事件(网页加载,异步任务等等)中安全终止,并确保在调用之前检查的任何回调方法都不为null。

答案 1 :(得分:1)

之前我遇到过同样的问题。在我的情况下,通常发生在用户离开屏幕或退出应用程序时,Web视图仍在加载,但是您知道,Web视图在不同的线程上加载URL,因此在加载内容后,它无法在GUI上呈现内容及其原因是Web视图(活动)的上下文已被破坏。

要避免此异常,您应检查网页视图是否正在加载内容,然后通过调用 mWebView.stopLoading() onPause()方法中将其停止。

希望这会对你有帮助。