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

Noh*_*ado 53 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
Run Code Online (Sandbox Code Playgroud)

我需要重新启动工作室才能让Logcat再次运行.

我看是否能为Logcat找到缓冲区大小的设置,但到目前为止我什么也没找到.可以做些什么?

Sur*_*gch 84

富勒回答

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

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

在此输入图像描述

  1. 我还必须重启模拟器.

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


小智 66

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

  • 我将其关闭,现在根本看不到任何日志。(三星注释8)。我认为这不是每个人的解决方案 (3认同)
  • 事实上,平板电脑方面的logcat是固定长度的! (2认同)

小智 7

使用以下命令:

adb logcat -G 20M
Run Code Online (Sandbox Code Playgroud)


aha*_*ini 6

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

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

adb kill-server
adb start-server
Run Code Online (Sandbox Code Playgroud)


小智 6

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

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

adb logcat -G 100M
Run Code Online (Sandbox Code Playgroud)


小智 6

这些建议对我不起作用。我终于改变了这个偏好设置:

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

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


小智 6

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