【问题标题】:Unexpected value from nativeGetEnabledTags: 0来自 nativeGetEnabledTags 的意外值:0
【发布时间】:2023-03-24 19:07:02
【问题描述】:

我安装了最新版本的 SDK (r21) 和 ADT 21.0.0。我尝试了简单的代码,它运行良好,但现在我在LogCat 中收到了以前版本中没有出现的警告:

来自 nativeGetEnabledTags 的意外值:0

我用谷歌搜索了一下,发现Issue 39723: Emulator spams LogCat with "Unexpected value from nativeGetEnabledTags: 0" message

什么意思?

【问题讨论】:

  • 表示最新的SDK有bug。确保并为问题加注星标以投票支持它得到修复。
  • 我有同样的问题,我应该降级应用程序吗?

标签: android adt android-logcat


【解决方案1】:

我也遇到了这个问题。作为一种解决方法,我在过滤器的by Log Message 字段上使用以下表达式过滤LogCat 输出:

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

否则垃圾邮件太多了,几乎没用。

按照Laksh 的建议,如果您想始终过滤此内容而不必总是将其写入Search for messages 字段:

  1. 转到您的Logcat
  2. 在左侧的Saved Filters 部分,单击Edit selected logcat filter(如果未显示已保存的过滤器,请单击 Logcat 中的显示已保存的过滤器视图)
  3. 在“按日志消息”字段中,输入^(?!.*(nativeGetEnabledTags)).*$

【讨论】:

  • 请你告诉我如何在Log中写这个。
  • 转到您的 Logcat,然后在 Saved Filters 部分中,单击 Edit selected logcat filter。在by Log Message 字段中输入^(?!.*(nativeGetEnabledTags)).*$。如果Saved Filters 不可见,请单击 Logcat 中的Display saved filters view
  • 对于我们这些使用 Intel 映像的人来说,这是一个很好的解决方法(与 ARM 不同,ARM 应该解决这个问题)
  • 我还在学习正则表达式,对此我有点困惑。我了解这些组件(行首、负前瞻、任何字符、字符串文字、任何字符、行尾),但我不明白为什么其中一些是必要的。正则表达式不会返回任何包含匹配项的行,那么为什么我们需要^.*$?为什么不只是(?!nativeGetEnabledTags)? (附:这不起作用)
  • 也许你在想grep 这很好,默认搜索行。答案是:“正则表达式不会返回任何包含匹配项的行...”。
【解决方案2】:

这是 API 17 的模拟器系统映像中的一个错误。

目前,您的解决方法如下:

如果您不需要 API 级别 17

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

如果您确实需要 API 级别 17

  • 使用真实设备:Nexus 4、Nexus 7、Nexus 10。
  • 使用 Hendrik 建议的 LogCat 过滤器。不过,您必须编辑您拥有的每一个过滤器(如果您想全部修复)。

【讨论】:

  • 我使用的是 Nexus 7 Real Device,但 Logcat 中仍然出现该错误...Hendrik 的解决方法是暂时的最佳方法..
  • Nexus 4 和 Galaxy Nexus 4.2.1 相同。尽管解决方法有些有限:其他日志往往会很快消失。
  • 看来那些真机也有bug的系统镜像。我猜你在这种情况下唯一的解决方法是在日志过滤器中。
  • 没必要它更低。我遇到了同样的问题,我运行了一个运行 Android 4.4.2 API Level 19 的模拟器,它也解决了这个问题。
【解决方案3】:

您提到的链接有答案。 这是最新版本的工具中引入的错误。 在后续的 cmets 中,您可以看到 google 代表说正在修复。

【讨论】:

    【解决方案4】:

    Android SDK Manager 更新ARM EABI v7a System Image 并且不会再看到警告.. !! :)

    是的。这仅适用于 ARM EABI 系统映像,不适用于 Intel 映像。

    更新

    似乎有适用于 API 18Intel x86 Atom System Image 的更新可解决该问题(不过我还没有尝试过)。 link 手动安装系统镜像。当然它也可以在 Android SDK Manager 中使用。

    但它仅适用于 Android 4.3。 4.2.x 的开发者可能仍然需要等待修复..!

    【讨论】:

    • 没有效果,不要打扰
    • 有效果!系统映像更新后,看不到该错误。如果对您的情况没有影响,请尝试更新您的 adt pluginandroid sdk
    • 我自己仍然在英特尔图像中看到这一点。
    • 更新 ARM EABI m7a 系统映像对我有用。谢谢!
    • 这不是 Intel 图像的解决方案。显然,ARM EABI 不适合英特尔。
    【解决方案5】:

    随着 Android 4.3 (API 18) Intel x86 Atom 映像的发布,英特尔 x86 Atom 映像和“nativeGetEnabledTags: 0”的问题已得到修复。我刚刚测试过,可以确认。

    我知道,对于 ARM 映像,这已在不久前得到修复...

    【讨论】:

      【解决方案6】:

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

      ^(?!Trace)
      

      就是这样。

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

      【讨论】:

        【解决方案7】:

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

        按日志标签:

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

        通过日志消息:

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

        【讨论】:

          【解决方案8】:

          我添加了^(?!.*(nativeGetEnabledTags)).*$ 过滤器,但您可以看到它对我的帮助有多大:

          从 1157 过滤了一些,799 绕过了相同的比例,但数字更大:

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

          按日志标签:

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

          按应用程序名称:

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

          对我来说,Logcat 有点用处。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2011-08-15
            • 2012-07-27
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2020-12-05
            • 1970-01-01
            相关资源
            最近更新 更多