Android - как отправлять отчеты о сбоях?
Похоже, что с Android 2.2 появилась новая функция для отправки отчетов о сбоях, как указано в ссылках:
Как использовать эту функцию? Автоматически ли это для каждого приложения, загруженного с рынка (например, в Google Play Store)?
Где я могу найти дополнительную информацию об этой функции?
Кроме того, можно ли настраивать отправленное сообщение, возможно, используя DefaultExceptionHandler, и поместить наше собственное описание сбоя?
ПРИМЕЧАНИЕ: Я знаю, что существует множество инструментов для отправки отчетов о сбоях (например, ACRA) но сначала я хочу проверить, можно ли использовать то, что уже дано.
EDIT: Мне удалось изменить исключение, которое передается дальше, надеясь, что это также изменит отчет, отправленный на веб-сайт разработчика 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 dev, который загрузил приложение. Я видел настройки, созданные Sense или Custom Roms. Единственный способ получить ваши собственные журналы - использовать DefaultErrorHandler
, о котором вы упомянули. В качестве хорошей практики я бы проверял, если вы можете поймать ошибку самостоятельно (возможно, запишите ее где-нибудь). Если бы я не перевернул эту ошибку, чтобы дать пользователю возможность дать вам подсказки, что он сделал