做软件测试的时候,有时候会遇到 anr(程序无响应 Application Not Responding),需要导出一下log,anr 日志一般是在 /data/anr/traces.txt 里。
在网上找了很多都是输入这行命令就行了:
adb pull /data/anr/traces.txt D:/但是我每次都会出错,也是很无奈,然后再去网上找了其他的四步骤,,中间也是遇到一些坑,跟大家分享一下。
在这之前其实还可以先确认一下,/data/anr/ 目录下是否有anr 日志
1.adb shell2.ls /data/anr//输入命令 2 以后,如果显示文件traces.txt,代表有 anr 日志,那就执行下面的步骤。如果该目录下什么都没有,那可能是没有生成 anr 日志,那就可以放弃了3.cat /data/anr/traces.txt >/mnt/sdcard/aa.txt//注意路径不要错误,网上很多都是给的 cat /data/anr/xxx >/mnt/sdcard/yy/zz.txt,要根据自己的实际路径改这个命令,我给自己的log 命名的是aa.txt 4.exit5.adb pull /mnt/sdcard/aa.txt //这里千万要注意,网上给的是 adb pull /mnt/sdcard/yy/zz.txt d:,但是我每次都会报错,后来发现是当前所在的目录不对,所以一直导出失败,命令行显示的是 C:/Users/yuanxiao> ,输入命令4 ,就可以在 C:/Users/yuanxiao 目录下找到aa.txt 文件导出 ANR 之后,可以打开做个简单的解析,找到自己的 APP anr 日志,Cmd line 后面一般显示的是 anr 程序的包名,比如下面就是YouTube 的 anr 信息:
讲得比较浅,只是把我自己遇到的问题写了出来,如果各位博友有其他的问题,欢迎讨论笑 ^-^。