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

Android Logcat崩溃并出现错误:意外的EOF,android,android-logcat,Android,Android Logcat,我在做一些冗长的计算,但很晚才出问题。我尝试使用断点,但到目前为止没有成功。因此,我将aLog.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

我在做一些冗长的计算,但很晚才出问题。我尝试使用断点,但到目前为止没有成功。因此,我将a
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的缓冲区大小找到一些设置,但到目前为止,我没有找到任何设置。可以做什么?

您发布的日志说明应用程序崩溃(虽然不是以stacktrace的常规方式,但它正在崩溃),而不是logcat。您是否已在logcat中选择应用程序并将过滤器设置为“显示所选应用程序”?如果是这样,只需将过滤器设置为“无过滤器”,您就会看到应用程序的所有日志

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

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

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

  • 在模拟器或设备(非Android Studio)中启用开发人员选项(如果尚未启用):在模拟器或设备中,转到设置>系统>关于(模拟设备)并单击构建编号7次
  • 转到设置>系统>开发人员选项>记录器缓冲区大小并选择更高的值
  • 我还必须重新启动模拟器

  • 因此,最初的问题显然发生了,因为设备日志缓冲区因长时间日志记录而被填满。增加缓冲区大小可以让您在单个日志会话中记录更多日志。

    如果您使用的是真正的手机,请断开并连接我使用的usb(缓冲区变空-如@Suragch建议的那样)

    亚洲开发银行logcat-G 1m


    在终端上输入此项,它对我有效

    更改缓冲区大小对我无效。所做的是将我的USB连接更改为USB 3.0端口。

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

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

    adb logcat -G 100M
    

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

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

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

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

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


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

    使用以下命令:

    adb logcat -G 20M
    

    我在while循环中读取一个文本文件时遇到了同样的问题。我在while循环中有两个log.d语句,文件大小约为220 MB。我删除了while循环中的log.d语句,因为它在logcat中产生了太多输出。我将logcat大小增加到了可能的最大值。这对我来说是可行的,尽管处理过程非常复杂我花了很长时间才得到想要的结果

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

  • 这很奇怪,因为该应用程序似乎仍在继续工作?我通常对计算本身感兴趣(因此我希望调试它)但其余的工作,点击按钮等继续产生预期的行为?亚洲开发银行的技巧恢复了日志,不幸的是跳过然后到实际的时间点…我想你所说的冗长计算是什么意思,然后出现了一些错误,这意味着应用程序可能会变得迟钝或没有响应,然后崩溃。应用程序是否有效osed的多个活动?当错误发生时,是否像返回到前一个活动?没有筛选器不会正确显示所有日志?没有,应用程序运行平稳,其结果在某一点上偏离预期,是的,多个活动和工作线程使用异步任务完成,没有在崩溃消息后,logcat保留事实上,平板电脑上的logcat是固定长度的!我把它关掉了,现在我根本看不到任何日志。(三星注8)。我不认为这对每个人都是一个解决方案。我把它关掉了,但作为问题的开场白,我仍然得到了错误。这对我来说很有效(使用模拟器)。这个问题刚刚开始。这不应该是一个认可的答案,最好增加缓冲区以防止其耗尽,而不是在实际设备上关闭。虽然它可能依赖于设备/Android操作系统版本。使用此方法,我可以在正常工作日避免问题。我有一个例外:使用Samsung手机在一个有很多蓝牙设备的环境中。三星决定在系统级记录每一次蓝牙扫描,显然16M是不够的。当我周围有30多个蓝牙设备时,这种情况每天仍会发生4到5次。logd缓冲区是一个环形缓冲区,改变它的大小应该不会对什么产生可测量的影响乙醚将连接在一起