Android 应用程序因“而死亡”;发送信号。”;但没有例外或其他信息

Android 应用程序因“而死亡”;发送信号。”;但没有例外或其他信息,android,Android,我正在开发一个通过蓝牙记录数据的应用程序,但在收集数小时数据后,它会间歇性崩溃(这使得追踪错误变得很困难) logcat输出不是很有用: 没有抛出异常,也没有导致进程终止的线索 我怎样才能找出哪里出了问题?是否有正在抛出的异常未由logcat显示?如何跟踪此错误?信号9是SIGKILL,它将立即终止进程(进程内没有处理程序将运行)。从日志行看,进程正在终止自身,因此发出SIGKILL的不是外部代理 我的猜测(实际上是猜测)是进程中运行的内存管理代码(作为基础设施的一部分,而不是您编写的代码)决

我正在开发一个通过蓝牙记录数据的应用程序,但在收集数小时数据后,它会间歇性崩溃(这使得追踪错误变得很困难)

logcat输出不是很有用:

没有抛出异常,也没有导致进程终止的线索


我怎样才能找出哪里出了问题?是否有正在抛出的异常未由logcat显示?如何跟踪此错误?

信号9是SIGKILL,它将立即终止进程(进程内没有处理程序将运行)。从日志行看,进程正在终止自身,因此发出SIGKILL的不是外部代理

我的猜测(实际上是猜测)是进程中运行的内存管理代码(作为基础设施的一部分,而不是您编写的代码)决定了您已经耗尽了一些资源,唯一的办法就是死亡。我希望在到达该点之前日志中会有更多消息,因此可能值得浏览日志历史,以查看在此点之前是否有来自流程的有用警告

紧靠前一行是GC日志,这意味着某种内存资源正在耗尽。但看起来堆还没有满,所以分配失败的可能性不大。如果正在分配的对象太大,无法放入堆中,或者碎片阻止了它的分配,则仍然可能会导致分配失败。不过,在这种情况下,我希望看到更多相关的日志消息


我认为捕获更多日志(如果需要,可能通过应用程序的PID进行过滤)将帮助您取得进展。

在我的情况下,日志中没有任何警告或线索

最终我发现我的问题是我要进行的一项活动(比如活动X)正在向广播接收器注册,但从未从中注销

因此,通过关闭活动(活动X)并返回该活动,导致再次向同一广播接收器注册,从而导致混乱

只需添加
未注册接收器(mybroadcast)(在活动X中)解决了它。
(我已将我的添加到onDestroy。请确保在中注销)


如果你非常绝望,我建议你看看这张幻灯片,它解释了你的错误。

这个问题发生在使用RXjava而没有实现
onError
回调方法时。

你是对的,我忽略了日志中的一些信息。谢谢谢谢这并没有解决我的“无例外”问题,但修复了另一个我无法发现的讨厌的错误:)