我在这个网站上搜索了这个错误代码的很多答案。但是他们都没有真正帮助:(
在我的上下文中,我的活动有一个webview,它将从互联网上的某个地方加载新闻内容(文章)。
在多次移动到其他屏幕后,我收到了这个信号
在我的应用程序崩溃之前
。
在这种情况下,堆栈跟踪中没有其他信息似乎有用。 Fatal signal 11 (SIGSEGV) at 0x00000200 (code=1)
之前有人遇到过这个问题吗?任何线索都表示赞赏。
答案 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()方法中将其停止。
希望这会对你有帮助。