Android“无法记录到二进制事件日志:溢出”

Android "couldn't log to binary event log: overflow"

提问人:Rhystic 提问时间:2/3/2014 最后编辑:PhantômaxxRhystic 更新时间:1/27/2020 访问量:6801

问:

我有一个 android 应用程序,在我将设备更新到 android 4.4 (kitkat) 之前,它一直运行没有问题。
现在我开始收到这个错误,程序的某些部分在日志cat_中因此而中断

Android“无法记录到二进制事件日志:溢出”

有谁知道发生了什么?

Android 二进制 溢出 android-4.4-kitkat

评论

0赞 hack_on 8/6/2014
你解决了吗?显然,它正在向日志发送垃圾邮件,因为有些事情不愉快,但您是否将其缩小到图形、声音或其他内容?

答:

0赞 Tarz 8/13/2014 #1

我不知道你是否知道这一点,但 4.4 有一些问题。 为了让它正常工作,您必须将项目的目标 SDK 更改为 4.4 KitKat,或者如果您尚未安装该版本,请进入 android 管理器并获取相应的文件。 即便如此,您的应用程序也可能无法运行,如果无法运行,请将您的设备降级到 android 4.3 或您的应用程序运行的任何版本。 希望这有帮助!

0赞 Fabio Espinosa 3/24/2017 #2

这可能有帮助,也可能没有帮助,但我遇到了同样的问题。我使用的是 Butterknife,但没有在@OnClick上声明 id。设置后,它工作并完美记录。

0赞 Franklin 12/25/2019 #3

线索:

在 4.4.4 R1 中

/frameworks/native/services/surfaceflinger/EventLog/EventLog.cpp

58void EventLog::TagBuffer::log() {
59    if (mOverflow) {
60        ALOGW("couldn't log to binary event log: overflow.");
...
67}

这应该是问题所在

mOverflow = ture 的情况: 例如:

116void EventLog::TagBuffer::writeString8(const String8& value) {
...
118    const int32_t stringLen = value.length();
119    const size_t needed = 1 + sizeof(int32_t) + stringLen;
120    if (mPos + needed > STORAGE_MAX_SIZE) {
121        mOverflow = true;
122        return;
...
128}

STORAGE_MAX_SIZE = 128 标签的文本>字符[128]

我认为这是由于旧设备的硬件资源短缺

新系统通常需要更多的内存空间

也许是系统ROM的问题

或尝试减少 TAG 的长度。 或者 mabye 不是你 APP 的 ErrorLog