我正在开发一个 Android 应用程序。我的应用程序经常崩溃。我想在应用程序崩溃时将 logcat 消息保存在 SD 卡中以查找根本原因。有什么办法可以做到这一点吗?
最佳答案
一些可能帮助您迈向全自动崩溃日志收集的想法。我们还没有在这里推出完整的系统,我们已经很幸运地在设备崩溃后捕获了设备,或者向我们的 QA 小组询问更多信息,但是:
- ACRA实现起来相对容易,即使你不实现,源码在github上,你可以去翻看。
- 相关问题Android crash reporting library (pre Froyo)有很多链接和解决方案,包括android-remote-stacktrace ,前述ACRA,Android-Error-Reporter以及其他商业解决方案。
- 某些设备会自动捕获崩溃输出,您可以通过
adb pull/data/log/dumpstate_app_native.txt.gz
或类似方式获取它 - 路径应显示在 logcat 中。不过,这些往往会在每次崩溃时被覆盖。 (如果有人能回答这是制造商特定的功能还是某些版本的 Android 核心中出现的功能,我很想知道!) - 您可以获得一个 logcat 应用程序,例如aLogCat或许多其他,您可以安装在您的设备上。
- TestFlight Android端即将进入测试阶段;他们在 iOS 端有崩溃报告,在 Android 端也应该如此,使用他们的服务还有其他各种可爱的好处——根据我们的经验,集成非常容易。
如果您要在应用程序中自行部署,则需要 READ_LOGS和 WRITE_EXTERNAL_STORAGE list 权限(即使对于本地构建),那么您可以使用日志记录 API 或常规 File.copy 甚至对 logcat
本身进行系统调用。这个问题旁边的“相关”链接中有很多选项和示例:
- Stream android logcat output to an sd card
- How to redirect my log output from logcat to the SD-Card on an android device?
- ...等等。
希望这有帮助。
关于android - 崩溃时在 SD 卡中写入 logcat 消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16385901/