Logcat crashes with error: unexpected EOF

Logcat crashes with error: unexpected 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 找到缓冲区大小的一些设置,但到目前为止我一无所获。可以做什么?

您发布的此日志说明应用程序崩溃(虽然不是以堆栈跟踪的通常方式,但它正在崩溃),而不是 logcat。您是否在 logcat 中选择了应用并将过滤器设置为 "Show selected application"?如果是这样,只需将过滤器设置为 "No Filter",您就会看到应用的所有日志。

此外,如果您出于任何原因需要重新启动 logcat,而不是重新启动 Android Studio,您可以 运行 以下命令将重新启动 adb 并最终重新启动您的 logcat 还有:

adb kill-server
adb start-server

尝试在设置->开发者选项下将记录器缓冲区大小设置为关闭,打开你的 device/emulator。这可能是因为 Logger buffer 配置为仅在特定时间显示有限 KB 的日志。下一组日志只会在先前的缓冲区被清除后显示。

更完整的答案

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

  1. 如果尚未启用,请在您的模拟器或设备中启用开发人员选项(而非 Android Studio):在您的模拟器或设备中转到 设置 > 系统 > 关于(模拟设备) 并点击 内部版本号 7 次。
  2. 转到设置 > 系统 > 开发人员选项 > 记录器缓冲区大小 并选择一个更高的值。

  1. 我还必须重新启动模拟器。

所以最初的问题显然是因为设备日志缓冲区被填满以进行冗长的日志记录。增加缓冲区大小允许您在单个日志记录会话中记录更多内容。

如果你是来自真实 phone 的 运行 - 从对我有用的 USB 断开并连接 phone(缓冲区变空 - 就像@Suragch 建议的那样)。

adb logcat -G 1m

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

更改缓冲区大小对我不起作用。将我的 USB 连接更改为 USB 3.0 端口。

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

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

adb logcat -G 100M

重启你的设备!我不知道为什么它在我重新启动手机后对我有用 phone。

只需转到 文件 -> 使缓存无效/重新启动 将让 android 工作室完成工作

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

这些建议对我不起作用。我终于更改了此首选项设置:

菜单“运行”,菜单项“编辑配置”,然后在左侧“Android App/app”和右侧选项卡“杂项”,以及最后激活“Logcat:启动前清除日志”。

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

使用以下命令:

adb logcat -G 20M

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

  1. 删除所有 log.d 并重新启动 android studio 并转到文件 -> 使缓存无效/重新启动。
  2. 您的设备设置->开发者选项
  3. 更改日志缓冲区大小