我正在开发一个Android应用程序。我的应用经常崩溃。我想在sd卡中保存logcat消息,同时应用程序崩溃以找到根本原因。有没有办法做到这一点?
答案 0 :(得分:2)
一些可能有助于您迈向全自动崩溃日志收集的想法。我们还没有在这里推出一个完整的系统,我们已经有足够的运气,只是在它们崩溃之后抓住设备或要求我们的QA小组提供更多信息,但是:
adb pull /data/log/dumpstate_app_native.txt.gz
或类似设备获取它 - 路径应该出现在logcat中。但是,这些往往会在每次崩溃时被覆盖。 (如果有人能够回答这是特定于制造商的功能还是在某些版本的android核心中出现的东西,我很想知道!)如果您在自己的应用内部滚动自己,则需要READ_LOGS和WRITE_EXTERNAL_STORAGE清单权限(即使是本地版本),然后您可以使用日志记录API或常规File.copy或甚至系统调用logcat
本身。在这个问题的“相关”链接中有很多选项和示例:
希望这会有所帮助。
答案 1 :(得分:0)
其他问题涵盖了阅读您自己的logcat消息。
how can i access logcat file on device Read logcat programmatically within application
为了在您的应用崩溃时执行此操作,您需要安装defaultUncaughtExceptionHandler。
您在创建活动或创建时的应用程序。添加以下代码。
final Thread.UncaughtExceptionHandler oldUncaughtExceptionHandler = Thread.getDefaultUncaughtExceptionHandler();
Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() {
@Override
public void uncaughtException(Thread thread, Throwable throwable) {
// DO your error handling here.
// Write your log cat, or write your exception stack trace here.
// Get rid of this line if you don't want a popup letting you know that your app has crashed.
oldUncaughtExceptionHandler.uncaughtException(thread,throwable);
}
});