Logcat 因错误而崩溃: 意外的 EOF

我正在进行一些冗长的计算,有些事情出错得很晚。我尝试使用断点,但到目前为止没有成功。所以我把一个 Log.d输入到循环中来监控..。

但很快,Logcat 崩溃了:

02-08 16:35:42.820 2936-3402/com.nohkumado.geneticsolving.full D/BaseC:
norm:BC sq:49.0 dis:0.0 con:50.0/BC sq:56.0 dis:4.0 con:94.0=1.4069148936170213


read: unexpected EOF!


--------- beginning of crash

我需要重新启动工作室让 Logcat 重新运行。

我看了看是否可以为 Logcat 找到一些缓冲区大小的设置,但是到目前为止我还没有找到任何东西。我们能做些什么?

75394 次浏览

您发布的这个日志声明的是应用程序崩溃(虽然不是通常的堆栈跟踪方式,但它正在崩溃) ,而不是 logcat。你有应用程序选择和过滤器设置为“显示选定的应用程序”在日志?如果是这样,只要设置过滤器为“无过滤”,你就会看到所有的应用程序的日志。

如果你需要重启 logcat 而不是重启 Android Studio,你可以运行以下命令来重启 adb 并最终重启 logcat:

adb kill-server
adb start-server

尝试将 记录器缓冲区大小设置为 关掉设置-> 开发人员选项下,在你的 设备/模拟器上。之所以会发生这种情况,是因为 记录器缓冲区被配置为仅在特定时间显示有限的日志知识库。只有在清除了前一个缓冲区之后,才会显示下一组日志。

更全面的回答

接受的答案对我不起作用。我没有关闭日志记录器缓冲区,而是将其增加到最大大小。

  1. 在模拟器或设备(而不是 Android Studio)中启用开发人员选项(如果还没有启用的话) : 在模拟器或设备中转到 设置 > 系统 > 关于(仿真设备)并单击 编号7次。
  2. 转到 设置 > 系统 > 开发者选项 > 记录器缓冲区大小并选择一个更高的值。

enter image description here

  1. 我还得重启模拟器。

因此,最初的问题显然是因为设备日志缓冲区被长时间的日志记录所填满而发生的。增加缓冲区大小允许您在单个日志会话中记录更多内容。

如果你正在逃离一个真正的电话-断开并连接电话从 USB 为我工作(缓冲区得到空-像@Suragch 建议)。

Adb logcat-G 1m

在终端上输入这个,对我很有用

更改缓冲区大小对我来说不起作用。真正起作用的是把我的 USB 连接改为 USB 3.0端口。

在 Developer 选项中,可以将 Logger 缓冲区大小设置为最大16M。
(设置 > 系统 > 开发者选项 > 记录器缓冲区大小)

如果您需要更多,可以使用 adb 设置它。 例如,你可以把它设置为100M:

adb logcat -G 100M

重新启动你的设备! 我不知道为什么重新启动我的手机后,它为我工作。

只要去 文件-> 无效缓存/重启会让安卓工作室做这项工作

不幸的是,这似乎仍然是一个问题,我无法找到一个令人满意的解决方案,除了安装一个插件(< em > 文件-> 设置-> 插件-> 市场 )称为“ 日志浏览器”。比 Android Studio 的内置 logcat 查看器工作得更好。

这些建议对我不起作用,我最终改变了这种偏好设置:

菜单“运行”,菜单条目“编辑配置”,然后在左侧“ Android 应用程序/应用程序”和右侧的选项卡“杂项”,最后激活“ Logcat: 清除日志启动前”。

当然,这有一些副作用,但至少我可以再次看到日志输出。

使用以下命令:

adb logcat -G 20M

我在 while 循环中读取一个文本文件时遇到了同样的问题。我在 while 循环中有两个 log.d 语句,文件大小约为220MB。我在 while 循环中删除了 log.d 语句,因为它在 logcat 中产生了很多输出。我把 logcat 的大小增加到了最大值。这对我来说很有效,尽管在我得到想要的结果之前处理了很长时间。

  1. 删除所有 log.d 并重新启动 android 工作室,然后点击 File-> InvalidCache/Restart。
  2. 设备设置-> 开发者选项
  3. 更改日志缓冲区大小

just click on delete button and clean the past logs of your application

只需点击删除按钮,清除您的应用程序的过去的日志

希望你能收到,谢谢