来自nativeGetEnabledTags的意外值:0。

303

30
这意味着最新的SDK存在一个漏洞。请确保点赞该问题以投票支持修复它。 - Jeffrey Blattman
我有同样的问题,我应该降级应用程序吗? - newday
8个回答

477

我也遇到了这个问题,我的解决方法是使用以下表达式在过滤器的按日志消息字段上过滤LogCat输出:

^(?!.*(nativeGetEnabledTags)).*$ 

否则,它被垃圾邮件淹没,几乎没有用处。根据Laksh的建议,如果您想始终过滤掉这些邮件而不必在“搜索消息”字段中始终编写它,请按以下步骤操作:1. 转到您的Logcat;2. 在左侧的“Saved Filters”部分中,单击“编辑所选的logcat筛选器”(如果未显示“已保存的筛选器”,则在Logcat中单击“显示已保存的筛选器视图”);3. 在“按日志消息”字段中输入^(?!.*(nativeGetEnabledTags)).*$。请保留HTML标签。

请问您如何在日志中编写这个内容? - Hardik Vora
67
转到Logcat,在“Saved Filters”部分,单击“Edit selected logcat filter”。在“by Log Message”字段中输入“^(?!.(nativeGetEnabledTags)).$”以对其进行筛选。 如果“Saved Filters”不可见,则在Logcat中单击“Display saved filters view”。 - Laksh
对于我们使用英特尔镜像的人来说,这是一个不错的解决方法(与 ARM 相反,在那里这应该已经被修复了)。 - MattD
我仍在学习正则表达式,有点困惑。我理解组件(行首、负向先行断言、任意字符、字符串字面量、任意字符、行尾),但我不明白为什么有些是必要的。正则表达式不是返回包含匹配项的任何行吗?那么为什么我们需要 ^.*$?为什么不只用 (?!nativeGetEnabledTags)?(附注:这不起作用) - DavidS
也许你在想 grep,它很好用并默认按行搜索。对于“正则表达式不会返回包含匹配项的所有行吗?”的答案是NO。 - dcow
你是专业的!谢谢Hendrik :) - Kishore

59

这是关于 API 17 的模拟器系统图像 Bug。

目前,您可以采用以下解决方法:

如果您不需要 API 级别为 17

  • 使用 API 16(或更低版本)的模拟器......
  • ... 或者更高版本(例如 API 19,已测试可解决问题)。

如果您需要 API 级别为 17

  • 使用真实设备:Nexus 4、Nexus 7、Nexus 10。
  • 使用 Hendrik 建议的 LogCat 过滤器。 不过,您将需要编辑每个单独的过滤器(如果您想修复它们所有问题)。

3
我使用 Nexus 7 真机,但是在 Logcat 中仍然出现了这个 bug... Hendrik 的解决方法暂时是最好的。 - Laksh
1
与Nexus 4和Galaxy Nexus的4.2.1版本相同。虽然解决方法有些有限:其他日志往往会很快消失。 - 3c71
看起来那些真实设备也有错误的系统映像。我猜在这种情况下你唯一的解决方法是日志过滤器。 - Iñigo
不需要,这是较低级别的问题。我曾经遇到过同样的问题,我运行了一个模拟器,运行Android 4.4.2 API Level 19,它也解决了这个问题。 - Xavi Montero

18

您引用的链接中已经有了答案。 这是最近工具版本中引入的一个错误。 在后续评论中,您可以读到谷歌代表说修复措施正在进行中。


15

更新Android SDK Manager中的ARM EABI v7a系统映像,就不会再出现警告了..!! :)

是的。这仅适用于ARM EABI系统映像,而不适用于英特尔映像。

更新

似乎有一个更新可用于API 18Intel x86 Atom系统映像,可以修复此问题(尽管我没有尝试过)。手动安装系统映像的链接。当然也可以在Android SDK Manager中获取。

但它仅适用于Android 4.3。4.2.x开发人员可能仍需等待修复..!


没有影响,不要费心了。 - Adam
1
它有作用!系统镜像更新后,该错误不再出现。如果在您的情况下没有效果,则尝试更新您的adt插件android sdk - Laksh
7
我仍然自己在英特尔的图像中看到这一点。 - Kevlar
2
更新 ARM EABI m7a 系统映像对我有用。谢谢! - TrippinBilly
7
这不是适用于Intel图像的解决方案。显然,ARM EABI不适用于Intel。 - Petr Gladkikh
显示剩余3条评论

5

随着Android 4.3(API 18) Intel x86 Atom镜像的发布,“Intel x86 Atom镜像和“nativeGetEnabledTags:0”的问题已经得到解决。我刚测试过,并且可以确认。

对于ARM镜像,这个问题一段时间前就已经解决了,我知道……


4

由于这些消息被标记为 Trace 标签,因此您可以使用更简单的表达式通过 Log Tag 字段筛选它们:

^(?!Trace)

就是这样。

顺便说一下,我也在真实设备(Fly IQ4410)上看到了这些消息。


4

我收到了很多类似的消息,所以我需要更好的过滤器。将以下过滤器添加到LogCat:

按日志标记过滤:

^(?!.*(GN_FW_TextView|GN_FW_Editor|SurfaceTextureClient|skia|AbsListView|Provider/Settings|InputMethodManager|jdwp)).*$

通过日志消息:

^(?!.*(nativeGetEnabledTags)).*$

1

我已经添加了^(?!.*(nativeGetEnabledTags)).*$ 过滤器,但你可以看到它对我帮助不大:

enter image description here

从1157中被过滤掉了一些,而799则绕过了相同的比例,但数字稍微大了一些:

enter image description here

我需要添加“SpamFilter”才能使用Logcat:

enter image description here

由日志标签提供:

 ^(?!Trace|ADB_SERVICES|BufferQueue|wpa_supplican|SurfaceFlinger|Settings/BW|Bluetooth HS/HF)

应用程序名称:

^(?!com.android.systemui|system_process)

对我来说,它让Logcat更加可用。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接