尽管有 UncaughtExceptionHandler,但间歇性 Android 应用程序崩溃且没有错误日志
Intermittent Android app crash with no error logs despite UncaughtExceptionHandler
难以在此处解释的问题 - 我无法提供代码示例,因为如果我知道问题出在代码中的什么位置,我就不需要帮助了。无论如何...
我的应用程序,很少,用 "Unfortunately [Your awesome generally bug free application] has stopped" 对话框轰炸,并且 - 尽管有一个 UncaughtExceptionHandler 似乎捕捉所有其他该死的东西 - 我的错误报告系统什么也没得到。
我怀疑这与 locked/frozen 线程在某种程度上发生冲突有关(我一直无法避免使用多线程的东西来实现我的目标),所以我知道这让一切都更难查明,我只是想知道是否有一种方法可以在 "Unfortunately..." 对话框出现时捕获应用程序状态,以便我可以将其转储到文本文件中,或者是否有另一种巧妙的调试方法?
我看过其他类似的 Whosebug 问题,但是 none 哪个国家已经有一个 UncaughtExceptionHandler。
抱歉含糊不清。
我最终通过以下方式将所有 Logcat 输出附加到 SD 卡上的文件来诊断问题:
String logcatFilePath = Environment.getExternalStorageDirectory().getPath() + "/output.log";
try {
Runtime.getRuntime().exec("logcat -v time -f" + " " + logcatFilePath);
}
catch (IOException e1) {}
违规条目是:
04-07 17:41:55.790 F/libc (26292): Fatal signal 11 (SIGSEGV) at 0xff606080 (code=1), thread 26297 (GC)
在其他现有 Whosebug questions/answers 的帮助下,它为我指明了正确的方向(本机库问题)。
难以在此处解释的问题 - 我无法提供代码示例,因为如果我知道问题出在代码中的什么位置,我就不需要帮助了。无论如何...
我的应用程序,很少,用 "Unfortunately [Your awesome generally bug free application] has stopped" 对话框轰炸,并且 - 尽管有一个 UncaughtExceptionHandler 似乎捕捉所有其他该死的东西 - 我的错误报告系统什么也没得到。
我怀疑这与 locked/frozen 线程在某种程度上发生冲突有关(我一直无法避免使用多线程的东西来实现我的目标),所以我知道这让一切都更难查明,我只是想知道是否有一种方法可以在 "Unfortunately..." 对话框出现时捕获应用程序状态,以便我可以将其转储到文本文件中,或者是否有另一种巧妙的调试方法?
我看过其他类似的 Whosebug 问题,但是 none 哪个国家已经有一个 UncaughtExceptionHandler。
抱歉含糊不清。
我最终通过以下方式将所有 Logcat 输出附加到 SD 卡上的文件来诊断问题:
String logcatFilePath = Environment.getExternalStorageDirectory().getPath() + "/output.log";
try {
Runtime.getRuntime().exec("logcat -v time -f" + " " + logcatFilePath);
}
catch (IOException e1) {}
违规条目是:
04-07 17:41:55.790 F/libc (26292): Fatal signal 11 (SIGSEGV) at 0xff606080 (code=1), thread 26297 (GC)
在其他现有 Whosebug questions/answers 的帮助下,它为我指明了正确的方向(本机库问题)。