Android - 如何发送崩溃报告?

时间:2012-05-30 11:07:50

标签: android google-play crash-reports

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

如何使用此功能?对于从市场下载的每个应用程序(也称为Google Play商店),它是自动的吗? 我在哪里可以找到有关此功能的更多信息?

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

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

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

以下是与此相关的示例代码:

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
}

1 个答案:

答案 0 :(得分:5)

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