Android - как отправлять отчеты о сбоях?
Похоже, что в Android 2.2 появилась новая функция для отправки отчетов о сбоях, как указано в ссылках:
- http://www.androidcentral.com/new-android-app-crash-report-tool-already-and-running
- http://android-developers.blogspot.com/2010/05/google-feedback-for-android.html
- http://developer.android.com/sdk/android-2.2-highlights.html
- http://www.youtube.com/watch?v=o8unC9bA4O8
Как мне использовать эту функцию? Это происходит автоматически для каждого приложения, загруженного с маркета (он же Google Play Store)? Где я могу найти больше информации об этой функции?
Кроме того, возможно ли настроить то, что отправляется, возможно, с помощью 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 ответ
То, что вы описали, звучит как встроенная функция, и, насколько я знаю, вы не можете настроить это. Данные будут отправлены в аккаунт разработчика googlePlay, который загрузил приложение. Я видел настройки, сделанные Sense или Custom Roms. Единственный способ получить свои собственные журналы, это использовать DefaultErrorHandler
ты упомянул. В качестве хорошей практики я бы проверил, можете ли вы поймать ошибку самостоятельно (возможно, зарегистрировать ее где-нибудь). Если нет, я бы перебросил эту ошибку, чтобы дать пользователю возможность дать вам подсказку, что он сделал