android - 在 Android 中捕获完整的日志

标签 android adb logcat logging

我想知道如何从 Android 设备获取完整日志(从我的应用程序初始化到任何崩溃或直到强制关闭我的应用程序)。

我在这里发布的原因是我的应用程序在某个时候崩溃了,但是当我使用 DDMS/Logcat 获取日志时,我的崩溃详细信息被新日志覆盖了。


如何获取我的崩溃原因日志..


特别希望捕获 native 代码崩溃。

I/DEBUG (21835):信号 11 (SIGSEGV),代码 1 (SEGV_MAPERR),故障地址 00000004...


adb logcat > crash.txt 是否会确保写入文件永远发生?

最佳答案

我试过这个效果很好,不确定它会消耗多少电池。如果您的应用程序处于测试阶段,您可以使用它。在发布之前,您必须删除此代码并发布。

private void writeADBLogs(){
     BufferedWriter bufferedWriter = null;

      try {
         final File file = new File(sdcardPath);
        bufferedWriter = new BufferedWriter(new FileWriter(file,true));
        Process process = Runtime.getRuntime().exec("logcat -d");
        BufferedReader bufferedReader = new BufferedReader( new InputStreamReader(process.getInputStream()));

        String oneLine;
          while ((oneLine= bufferedReader.readLine()) != null) {
              bufferedWriter.write(oneLine);
              bufferedWriter.newLine();
          }
    } catch (IOException e) {
        e.printStackTrace();
    } 
}

关于android - 在 Android 中捕获完整的日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9787808/

相关文章:

android - 如何使用findstr获取MAC地址?

Android SQLite 数据库拉错误

android - 游戏在不同时间强制关闭。需要帮助解释 logCat 警告和错误

android.os.NetworkOnMainThreadException 在 android 上启动服务

java - 安卓工作室 : Application crashes at start

java - 从 servlet 获取响应

java - onItemClickListener如何让每个item有一个固定的名称?

android - Intellij 13 在尝试将 Android 应用程序安装/启动到 USB 设备时出错

android - ActionBar 选项卡根据屏幕宽度设置动态宽度

Android 更新表中的行