Android 应用测试、开发过程中,闪退、崩溃是最常见的问题。借助 ADB 的 logcat 日志功能,可以快速捕获异常、定位根因。本文整理一套精简实用的排查流程、常用命令与日志解读技巧。
一、前期准备
电脑已配置好 ADB 环境,可在任意命令行直接调用
adb命令;安卓真机 / 模拟器开启USB 调试,通过数据线或网络连接电脑;
验证连接状态,执行以下命令,出现设备编号即代表连接正常:
adb devices二、核心排查命令
按照复现问题的流程依次使用,优先使用崩溃专属日志命令,减少冗余信息干扰。
1. 清空历史日志
抓取日志前先清空旧数据,避免无关日志影响判断:
adb logcat -c2. 实时查看全量日志
输出应用完整运行日志并附带时间戳,适合全方位追踪运行状态:
adb logcat -v time3. 单独抓取崩溃日志(推荐)
只过滤应用闪退、致命异常日志,是定位崩溃最高效的命令:
adb logcat -b crash4. 日志导出为本地文件
将崩溃日志保存到本地,方便复盘、分享给同事分析:
adb logcat -b crash > crash.log三、崩溃日志快速解读
日志中出现 FATAL EXCEPTION 代表主线程触发致命异常,应用直接闪退;Caused by 后为崩溃根因,结合代码行号即可定位问题。
常见崩溃案例
空指针异常(NullPointerException) 日志特征:
Caused by: java.lang.NullPointerException定位方式:根据日志里类名(文件名:行号)提示,找到代码对应行,对空对象增加非空判断即可修复。WebView 多进程冲突(Android 9+) 日志特征:
Using WebView from more than one process at once with the same data directory is not supported问题原因:App 开启多进程后,多个进程共用 WebView 数据目录,系统限制导致闪退。 修复方向:在 Application 中为子进程单独分配独立的 WebView 数据目录。
四、标准排查流程 & 小技巧
标准步骤
执行
adb logcat -c清空日志;执行
adb logcat -b crash监听崩溃;在设备上操作 App,复现闪退;
查看命令行输出的异常日志,定位问题。
实用小技巧
过滤单个应用日志(屏蔽其他应用干扰),替换为自己 App 的包名即可:
adb logcat --pid=$(adb shell pidof -s 应用包名)五、总结
ADB logcat 是安卓问题定位的基础工具,日常排查闪退优先使用 adb logcat -b crash 精准抓取异常。结合日志中的异常类型、代码行号,绝大多数崩溃问题都能快速定位并解决,是安卓开发、测试必备技能。