我的程序一直崩溃,但logcat没有显示任何异常。我只是得到以下消息,加上很多关于CPU使用率的统计信息。显然我使用了太多的CPU,但我不知道我的程序的哪个部分正在执行此操作。以下文件在哪里?我找不到它。
12-30 23:13:06.639:INFO / dalvikvm(7688):写了堆栈跟踪到 '/data/anr/traces.txt'
答案 0 :(得分:16)
adb shell
- >
cat /data/anr/traces.txt
编辑:
您需要具有root权限才能修改/ data /中的文件,您应该可以使用https://market.android.com/details?id=com.estrongs.android.pop
等应用访问该文件拥有该应用后,打开它 - >菜单 - >设置 - >主目录(从/sdcard/
更改为/
) - >退出应用 - >再次打开
然后你应该能够浏览到/ data / anr / *
EDIT2(附加信息,基于评论),用于在经过测试后与已发布的应用程序一起使用:
当用户提交错误报告时,大多数开发人员依赖developer console error reporting来查看堆栈跟踪和错误日志。
其他人恭维自己或使用像ACRA这样的图书馆
警告某些用户不要仅仅因为它使用权限来读取敏感日志数据而安装应用程序。
答案 1 :(得分:8)
为了在没有文件头部的情况下进行舒适的观看,请按照以下一行命令进行:
adb shell "cat /data/anr/traces.txt" | less
答案 2 :(得分:4)
ANR代表“Android Not Responding”,它并不意味着你使用了太多的CPU,这意味着UI主循环器在给定的时间内没有被调用。 UI looper负责用户输入,因此从用户的角度来看,应用程序没有响应输入。通常这是由在主UI线程上执行长时间运行或阻塞操作引起的。例如,在主线程上下载文件可能会导致ANR。通常,从这些信息中选择导致ANR的代码非常容易。
答案 3 :(得分:0)
如果您与Windows
在Android Studio
上,则可以执行以下操作:
在Andriod Studio中:
View > Tool Windows > Device File Explorer
这应该打开一个包含设备上所有文件(堆栈跟踪所在的位置)的新窗口,然后您可以导航到“ /data/anr/traces.txt”,只需双击该文件即可将其打开为你。