0

此处难以解释的问题 - 我无法给出代码示例,因为如果我知道问题在代码中的位置,我就不需要帮助。反正...

我的应用程序很少出现不幸的是 [您的真棒通常无错误的应用程序] 已停止”对话框,并且 - 尽管有一个 UncaughtExceptionHandler 似乎可以捕获所有其他该死的东西 - 我通过我的错误报告系统一无所获。

我怀疑这与锁定/冻结的线程以某种方式发生冲突有关(我无法避免使用多线程的东西来实现我的目标),所以我知道这使得一切都更难以确定,我只是想知道是否有是一种在出现“不幸...”对话框时捕获应用程序状态的方法,以便我可以将大量转储到文本文件,或者是否有另一种巧妙的调试方法?

我见过其他类似的 StackOverflow 问题,但没有一个说明他们已经有一个 UncaughtExceptionHandler 到位。

为含糊而道歉。

4

1 回答 1

0

我终于通过以下方式将所有 Logcat 输出附加到 sdcard 上的文件来诊断问题:

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)

在其他现有 StackOverflow 问题/答案的帮助下,这为我指明了正确的方向(本机库问题)。

于 2017-04-07T19:48:05.123 回答