Android Q仿真器上的Logcat中的“ runtime_flags中设置的未知位:0x8000”警告

Vio*_*ffe 29 android android-10.0

我在logcat的应用程序的第一行收到此警告,但我不知道它指的是什么以及应该如何修复它。Google对此没有提供太多信息(实际上根本没有提供)。请指教。这可能是什么样的标志?有没有一种方法可以找出指定位可能引用的内容(或者也许在较旧的Android版本上已引用过)?Android 9或更早版本的日志中没有这样的行。

Pie*_*age 16

我给大楼带来了一块石头。我回溯错误消息的代码。它位于 C++ 文件dalvik_system_ZygoteHooks.cc 的第 345 行。 至少,如果 (runtime_flags! = 0) 则将打印错误消息。0x8000 也对应于 USE_APP_IMAGE_STARTUP_CACHE 标志(见第 157 行)。对 USE_APP_IMAGE_STARTUP_CACHE 标志的测试在第 340 行完成。通常,runtime_flags 不应再为 USE_APP_IMAGE_STARTUP_CACHE 增加位,但由于打印了错误,因此情况似乎并非如此。

但最终,该错误似乎并没有对应用程序产生影响。

  • 我进一步推进了我的研究。我只能建议一首曲目,但没有明确的解决方案。对“USE_APP_IMAGE_STARTUP_CACHE”的简单搜索使我找到了 Zygote.java 模块的第 107 行,其中定义了该常量。继续我的研究,我最终在 ART (Android Runtime) (runtime.h) 的第 922 行结束。这一行是 SetLoadAppImageStartupCacheEnabled 方法,它初始化 load_app_image_startup_cache_。简而言之,该警告似乎与 Android 运行时图像的缓存初始化有关。 (2认同)