14

似乎从 Android 2.2 开始,有一个发送崩溃报告的新功能,如链接中所述:

如何使用此功能?从市场(又名 Google Play 商店)下载的每个应用程序都是自动的吗?在哪里可以找到有关此功能的更多信息?

此外,是否可以自定义发送的内容,也许通过使用 DefaultExceptionHandler,并放入我们自己的崩溃描述?

注意:我知道有很多用于发送崩溃报告的工具(如ACRA),但我希望先检查是否可以使用已经给出的内容。

编辑:我已经成功修改了进一步传递的异常,希望这也会改变发送到谷歌开发者网站的报告。

这是与此相关的示例代码:

private static class DefaultExceptionHandler implements java.lang.Thread.UncaughtExceptionHandler
...
@Override
public void uncaughtException(Thread t, Throwable e)
{
  final StackTraceElement[] exceptionStackTrace = e.getStackTrace();
  Exception exception = new Exception("my new exception!", e);
  final StackTraceElement[] newExceptionStackTrace = new StackTraceElement[exceptionStackTrace.length + 1];
  System.arraycopy(exceptionStackTrace, 0, newExceptionStackTrace, 1, exceptionStackTrace.length);
  newExceptionStackTrace[0] = new StackTraceElement("TEST CLASS", "TEST METHOD", "TEST FILE", 0);
  exception.setStackTrace(newExceptionStackTrace);
_defaultUEH.uncaughtException(t, exception); //this will hopefully call the default handling of the exception for reporting
}
4

1 回答 1

5

您所描述的听起来像是内置功能,据我所知,您无法自定义此功能。数据将发送到上传应用程序的 googlePlay 开发帐户。我见过 Sense 或 Custom Roms 进行的自定义。获取您自己的日志的唯一方法是使用DefaultErrorHandler您提到的。作为一个好习惯,我会检查你是否可以自己捕获错误(也许将它记录在某个地方)。如果不是,我会重新抛出这个错误,让用户有机会给你提示,他做了什么

于 2012-05-30T11:20:44.487 回答