【问题标题】:Writing logcat messages in sd card on crash崩溃时在 sd 卡中写入 logcat 消息
【发布时间】:2023-04-03 20:52:01
【问题描述】:

我正在开发一个安卓应用。我的应用程序经常崩溃。我想在应用程序崩溃以查找根本原因时将 logcat 消息保存在 sd 卡中。有没有办法做到这一点?

【问题讨论】:

  • 这只是为了本地调试,还是你想要一些可以随应用一起提供的东西?
  • 您可能对stackoverflow.com/questions/3378550/… 感兴趣,也可以看看 ACRA 和其他解决方案。如果您需要发送它,您将需要一个非常可怕的“读取敏感日志数据”权限。
  • 本地调试需要它

标签: android


【解决方案1】:

一些想法可能会帮助您逐步实现完全自动化的崩溃日志收集。我们还没有在这里推出一个完整的系统,我们已经足够幸运了,只是在设备崩溃后抓住设备或向我们的 QA 小组询问更多信息,但是:

  • ACRA 比较容易实现,即使不实现,源码在github上供大家戳。
  • 相关问题Android crash reporting library (pre Froyo)有多个链接和解决方案,包括android-remote-stacktrace、前面提到的ACRA、Android-Error-Reporter等商业解决方案。
  • 某些设备会自动捕获崩溃输出,您可以通过adb pull /data/log/dumpstate_app_native.txt.gz 或类似方式获取它——路径应该出现在 logcat 中。但是,这些往往会在每次崩溃时被覆盖。 (如果有人能回答这是制造商特定的功能还是出现在某些版本的 android 核心中的东西,我很想知道!)
  • 您可以获取 logcat 应用程序,例如aLogCat 或许多其他,您可以安装在您的设备上。
  • TestFlight 在 Android 端进入测试版;他们在 iOS 端和 Android 端都有崩溃报告,而且使用他们的服务还有许多其他可爱的好处——根据我们的经验,集成真的很容易。

如果您在自己的应用中滚动,您需要 READ_LOGSWRITE_EXTERNAL_STORAGE 清单权限(即使对于本地构建),然后您可以使用日志记录 API 或常规 File.copy 甚至系统呼叫logcat 本身。这个问题旁边的“相关”链接中有很多选项和示例:

希望这会有所帮助。

【讨论】:

    【解决方案2】:

    阅读您自己的 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);
            }
        });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-12-14
      • 1970-01-01
      • 2019-08-16
      • 1970-01-01
      • 1970-01-01
      • 2011-04-20
      相关资源
      最近更新 更多