Android App崩溃crash后,错误日志被覆盖

场景描述

  1. 调试app在使用中出现崩溃。
  2. 当我们把手机连接电脑,在AS的logcat中查看App的运行日志的时候,错误日志在logcat中一闪而过,很快就会被后面的新日志给覆盖掉调。
  3. 并不是所有手机都这样,只有部分手机。如nexus、华为等。

解决办法

方法一

  1. 将logcat过滤器从show only selected application改为No filters。
  2. 将log级别改为error。

方法二

换一个崩溃后不会重启应用的系统。

方法三

使用adb logcat > 1111.txt命令把错误日志导出来,然后自己去找对应的错误日志。

原因分析

为什么有的手机不这样,而有的手机会这样?

某些系统在APP crash之后会自动重启,导致新的日志会覆盖掉以前的日志。而有些系统在crash之后不重启,就不会出现错误日志被覆盖的情况。

为什么奔溃前的错误日志会被覆盖掉?

  1. 在logcat工具栏有下面几个过滤选项:设备、进程、log级别(i、e、v等)、搜索关键词、过滤器。
  2. 正常使用的时候,我们会设备、自己的进程。然后在过滤器上选择show only selected application。这样就能只显示我们自己app的日志了。
  3. 每一个application都是一个进程,对应一个进程号。一个APP在崩溃前和崩溃重启后,是两个进程。
  4. 所当app崩溃并自动重启后,logcat过滤器显示的是重启后新进程的日志。而我们希望看到的错误日志是之前进程的,所以不会显示。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,328评论 19 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,176评论 25 709
  • 用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你...
    hw1212阅读 14,467评论 2 59
  • 千与千寻里说过一句话,不工作,就会变成动物。人和动物的区别就是人晓得工作。这个工作不是狭义的上班,农民种庄稼,家庭...
    白格子阅读 3,211评论 0 0
  • 其实我也不知道 我和你的友谊是何时建立起来的,现在回忆起来,一切都在时间的发酵下,回忆里只留下一些细水流长的美好,...
    无脸布谷阅读 1,287评论 0 0