Страницы

Поиск по вопросам

пятница, 12 июля 2019 г.

Как снять и отправить логи при падении приложения на android?

У меня есть приложение на android которое я тестирую везде где можно и на некоторых устройствах приложение падает, но этих устройств у меня нету под рукой, и мне соответственно нужно что-бы мне на почту приходили логи ошибки. Я уже задавал два вопроса Определить причину падения приложения на телефоне android // Непонятная проблема программы android y xiaomi. И вот у меня возник закономерный вопрос, что нужно дописать своему приложению что-бы во время падения оно предлагало пользователю отправить логи мне на почту? Как сделать, что-бы эти методы отслеживания логов активировались только в момент падения приложения а не при любом удобном для них (методов) случае. Я буду очень благодарен за любую помощь, советы и само-собой критику от всех кто увидит мой вопрос. Заранее спасибо за помощь.


Ответ

Честно сказать я не пробовал пока-что реализовать код приведенный в первом ответе, пока никто мне не отвечал, я нашел в сети такой способ:
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(activity_login);
submitBtn = findViewById(R.id.btn_submit); submitBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { sendPost(); } });
Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() { @Override public void uncaughtException(Thread thread, Throwable ex) { handleUncaughtException(thread, ex); } });
}
public void handleUncaughtException (Thread thread, Throwable e) { String stackTrace = Log.getStackTraceString(e); String message = e.getMessage(); Intent intent = new Intent (Intent.ACTION_SEND); intent.setType("message/rfc822"); intent.putExtra (Intent.EXTRA_EMAIL, new String[] {"angoran16@gmail.com"}); intent.putExtra (Intent.EXTRA_SUBJECT, "MyApp Crash log file"); intent.putExtra (Intent.EXTRA_TEXT, stackTrace); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); // required when starting from Application startActivity(intent); }
данный способ позволил мне отправить с проблемного телефона не именно на почту, а через любое приложение имеющее функцию отправки сообщений, телеграмм или gmail. Короче мне этот способ на данный момент помог отправить код ошибки и теперь у меня есть причина падения. Надеюсь мой ответ поможет кому-то еще с подобной проблемой.

Комментариев нет:

Отправить комментарий