Logcat崩溃并出现错误:意外的EOF

时间:2018-02-08 16:11:05

标签: android android-logcat

我正在进行一些冗长的计算,而且出现问题已经很晚了。我尝试使用断点,但到目前为止没有成功。所以我在循环中放了一个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缓冲区大小的设置,但到目前为止我什么也没找到。可以做些什么?

14 个答案:

答案 0 :(得分:70)

更全面的答案

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

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

enter image description here

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

因此,最初的问题显然是由于设备日志缓冲区被填满以进行冗长的日志记录而发生的。增加缓冲区大小可让您在单个日志记录会话中记录更多内容。

答案 1 :(得分:51)

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

答案 2 :(得分:6)

你发布的这个日志说明应用程序崩溃了(虽然不是通常的堆栈跟踪方式,而是崩溃),而不是logcat。您是否选择了应用并将过滤器设置为"显示所选应用"在logcat?如果是这样,只需将过滤器设置为" No Filter"并且您将看到应用的所有日志。

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

adb kill-server
adb start-server

答案 3 :(得分:2)

  1. 删除所有 log.d 并重新启动 android studio,然后转到 File -> Invalidate Caches / Restart。
  2. 您的设备设置->开发者选项
  3. 更改日志缓冲区大小

答案 4 :(得分:1)

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

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

adb logcat -G 100M

答案 5 :(得分:1)

使用以下命令:

adb logcat -G 20M

答案 6 :(得分:0)

如果您使用的是真实手机,请从对我有用的USB设备上断开并连接手机(缓冲区变空-建议使用@Suragch)。

答案 7 :(得分:0)

  

adb logcat -G 1m

在Terminal上输入此命令对我有用

答案 8 :(得分:0)

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

答案 9 :(得分:0)

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

答案 10 :(得分:0)

只需转到文件->无效的缓存/重新启动,即可让android studio完成该工作

答案 11 :(得分:0)

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

答案 12 :(得分:0)

这些建议对我没有用。我终于更改了此偏好设置:

菜单“运行”,菜单项“编辑配置”,然后在左侧“ Android应用程序/应用程序”和在右侧标签“ Michelangelo”,最后激活“ Logcat:启动前清除日志”。 / p>

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

答案 13 :(得分:0)

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