因此,我遇到了一些奇怪的事情,这使我失去了一些时间.我一直在尝试打印包含字符串元素的ArrayList的内容,有时,一个元素可能包含一个空字符串,这很好,绝对是我的意图.
因此,在这里,当循环将要敲空字符串时,logcat根本不会将其打印出来(但这是我的困惑的根源),如果您在失败后显示一条消息,则突然失败了.消息将显示为好像它包含噺的logcat消息.例如,如果您尝试记录这样的空字符串
Logcat首先将不输出任何内容,然后,当它有一条NEW消息要显示时,它就是打印出来的内容(在这种情况下,新消息是有关AudioTrack的警告):
我很想知道这是怎么发生的,也许它可以帮助其他人不要像我那样超级困惑.我想尝试记录一个空字符串会触发某种缓冲區,该缓冲区位于那里直到可以打印出东西,这是一个错误吗
这是一个有趣的问题.我只是在LogRabbit中尝试过,并且能够看到相同的结果.
我快速浏览了android源代码,看到Log.W(…)最终以本机代码显示并在中得到处理
您可以这样获取这些日志:
您将需要按cntl-C,否则复制将永远发生.
查看/ dev / log / main中的原始日志,我看到消息确实被记录了:
这被中的struct解码,所以我认为这是adb中的问题.从此处拉出 :(看起来那里有很多未记录的令)
看那里,我发现所有logcat所做的基本上是这樣的:
根据我快速阅读的内容,我认为正在发生的事情是消息未正确终止.空消息直到附加另一条消息并且第一条消息超限并显示第二条消息財显示,因为它具有适当的终止.