android logcat中的致命信号6是啥[关闭]

Posted

技术标签:

【中文标题】android logcat中的致命信号6是啥[关闭]【英文标题】:What is fatal signal 6 in android logcat [closed]android logcat中的致命信号6是什么[关闭] 【发布时间】:2016-08-10 04:27:12 【问题描述】:

我是安卓开发新手 我的应用程序在从活动切换 11 次时不断被杀死,而不是它只说

致命信号 6 (SIGABRT),tid 9485 中的代码 -6 (Thread-141585)

在我的日志中。

这是什么意思?

【问题讨论】:

如果 UI 线程中发生 CPU 密集型操作,就会出现这种情况。你能分享活动代码以检查是否有类似的东西 我不完全确定,但我认为当您的 android 设备认为 UI(即将)挂起时,它会给出该错误。因此,正如 @Sreeraj 正确指出的那样,您很可能在 UI 线程上做的太多了。另外,这仅在调试时发生吗?如果是这样,请尝试turning on the ANR (App Not Responding) dialog,这样它将等待调试器启动。主要问题是 UI 线程上的内存,但是导致它的原因只是猜测没有更多信息,例如您的一些 code-sn-ps 等。 我正在使用 BluetoothLeService(服务)类,当我切换 11 次时,我在每个活动上绑定和解除绑定,它使我的应用程序崩溃,信号 6 错误也打开了 ANR,它只是让我的应用程序崩溃 【参考方案1】:

没有更多细节(比如看一些代码)。

1) 不要阻塞 UI 线程,这可能会导致 SIGABRT,因为操作系统会杀死无响应的应用程序。

在我切换 11 次时绑定和取消绑定每个活动,这会导致我的应用崩溃

2) 确保在您的 OnDestroy 中的 Activity 中,您自己进行清理。即删除所有Listeners/Events,然后调用Base.OnDestory

3) 一个外部(即BluetoothLeService)服务回调到您的应用程序,监听器现在 null/nil 将导致挂起,因此会导致 SIGABRT,请参阅 #2

【讨论】:

我正在清除所有内容并清理所有内容,但它仍然随机崩溃一切正常工作 ble 设备与我的应用程序通信还向我显示请求的值它非常奇怪寻找 3 周到这个问题尝试分配的东西 我想这是一个错误的引用,一个在 Mono 和/或 Davik/ART 上被 GC 的对象,一个为 nil 的对等对象,一个挂起应用程序的东西,内存不足问题,但没有看到一些代码,我只是在猜测...附带说明:您是否尝试过在 OnDestroy 结束时使用 GC.Collect() 并设置 Activity 的 OnLowMemory 事件,并添加日志记录无处不在;-) OnLowMemory 没有被触发 monodroid-glue.c:1144: gc_cleanup_after_java_collection: 断言 "!sccs [i]->is_alive" 失败 04-18 15:37:04.668 I/art (21664): 显式并发标记扫描 GC释放 29516(1647KB) AllocSpace 对象,17(4MB) LOS 对象,40% 空闲,17MB/29MB,在主线程 CareAboutPauseTimes 1 04-18 15:37:04.668 F/libc (21664) 处暂停 704us 共 47.771ms:monodroid-胶水.c:1144:gc_cleanup_after_java_collection:断言“!sccs [i]->is_alive”失败04-18 15:37:04.668 F / libc(21664):致命信号6(SIGABRT),代码-6 BluetoothLeService 我正在使用【参考方案2】:

根据***:

SIGABRT 信号被发送到一个进程,告诉它中止,即终止。该信号通常由进程本身在调用 C 标准库的 abort 函数时发起,但也可以像任何其他信号一样从外部发送到进程

它通常表示您的代码或您调用的某个库中存在某种错误。

另请参阅:When does a process get SIGABRT (signal 6)?

【讨论】:

以上是关于android logcat中的致命信号6是啥[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何在致命信号 11 之后使用 logcat 中的输出来找出我在 android 本机代码中从哪里得到错误?

来自 asyncTask 的 Android 致命信号 6 (SIGABRT)

相机崩溃:带有 JNI 代码的致命信号 6 (SIGABRT)

Android WebRTC 随机崩溃,致命信号 6 (SIGABRT)、tid 1191 (TimeCheckThread) 中的代码 -6 (SI_TKILL)、pid 656 (audioser

致命信号 11 (SIGSEGV) 在 0x00000000 (code=1) - PhoneGap

NestedScrollView 中的 WebView 给出致命信号 6 (SIGABRT) 代码 -6 RenderThread