0

我的应用程序的 logcat 输出有问题:
通常记录到 logcat 有效。但有时我的应用程序的输出似乎完全从 logcat 输出中删除。虽然我可以证明应用程序已记录,但 logcat 中没有一行。

什么时候发生这种情况:
我安排我的应用程序在午夜通过 BroadcastReceiver 启动服务唤醒。应用程序唤醒并创建一个日志文件,通过调用一个写入两者的函数并行写入该文件和 logcat。日志文件包含 3 行写入。(然后应用程序莫名其妙地死了。)至少这 3 行也已记录到 logcat。
第二天,我显示所有 logcat 消息,包括午夜。没有为我的应用记录一行。

我认为 Android 已经从内存中清除了我的应用程序,并在午夜再次加载它(并且由于未正确初始化而崩溃)。但是为什么没有logcat输出呢?

谢谢你的提示。

4

1 回答 1

0

Logcat 有大小限制。达到此限制后,旧消息将被清除,以便为新消息腾出空间。并不是说 Logcat 专门删除了您的应用程序的消息,而是在整夜运行的过程中,有很多其他消息会发送到 Logcat你的正在被删除。

要查看特定设备上的缓冲区大小,请将其插入并在 shell 窗口中执行以下命令:

adb logcat -g

如果您需要在无法实际查看输出窗口的时间收集日志消息,那么您通过登录到文件来做正确的事情。我做了类似的事情,我将在构建上设置一个全局标志,告诉它是正常记录还是输出到手机上的本地文件。

于 2012-05-31T09:49:00.753 回答