"Unknown bits set in runtime_flags: 0x8000" Logcat 在 Android Q 模拟器上的警告
"Unknown bits set in runtime_flags: 0x8000" warning in Logcat on Android Q emulator
我在 logcat 中收到此警告作为我的应用程序的第一行,我不知道它指的是什么以及我应该如何修复它。 Google 没有提供太多这方面的信息(事实上,none 根本没有)。请指教。这可能是关于什么样的旗帜?有没有办法找出指定的位可能指的是什么(或者,也许,在旧的 Android 版本中指的是什么,但在 Android 10 中变得无效)? Android 9 或更早版本的日志中没有这样的行。
我搜索了一下,给你一些建议。
首先看看这个链接:
difference between constants 32768 and 0x8000
现在这个链接可能对你有帮助:
Android Fragment no view found for ID
FLAG_ACTIVITY_CLEAR_TOP
addFlags(0x8000)
最后一件事是:
再次从模拟器和运行项目中卸载应用程序。
第一次编辑:
我再次搜索,我认为我们接近回答了,所以请查看此链接并说出您的看法?他们无关紧要吗?或者我们走对了。
...
org.robolectric.res.android
Class配置
public static final int ACONFIGURATION_SCREEN_ROUND
...
\sdk\ndk-bundle\sysroot\usr\include\android
* Bit mask for
* <a href="@dacRoot/guide/topics/resources/providing-resources.html#LayoutDirectionQualifier">layout direction</a>
* configuration.
ACONFIGURATION_LAYOUTDIR = 0x4000,
ACONFIGURATION_SCREEN_ROUND = 0x8000
...
https://developer.android.com/ndk/reference/group/configuration
Constant : ACONFIGURATION_SCREEN_ROUND
->
Constant android_ndk_sys::ACONFIGURATION_SCREEN_ROUND
pub const ACONFIGURATION_SCREEN_ROUND: _bindgen_ty_3
->
Type Definition android_ndk_sys::_bindgen_ty_3
type _bindgen_ty_3 = u32;
...
ACAMERA_VENDOR = 0x8000
ACAMERA_DISTORTION_CORRECTION << 16,
ACAMERA_HEIC_START = ACAMERA_HEIC << 16,
ACAMERA_HEIC_INFO_START = ACAMERA_HEIC_INFO << 16,
ACAMERA_VENDOR_START = ACAMERA_VENDOR << 16
在我的情况下至少会发生,因为当另一个 activity 已经 运行 时片段试图更新视图(或类似的东西)所以只是
@Override
public void onStop() {
super.onStop();
getActivity().finish();
}
片段内部解决了这个错误
我带了一块石头到大楼。我回溯错误消息的代码。它位于 C++ 文件中的第 345 行 dalvik_system_ZygoteHooks.cc
至少,如果 (runtime_flags!= 0) 则将打印错误消息。 0x8000 也对应于 USE_APP_IMAGE_STARTUP_CACHE 标志(见第 157 行)。 USE_APP_IMAGE_STARTUP_CACHE 标志的测试在第 340 行完成。通常,runtime_flags 不应该再有 USE_APP_IMAGE_STARTUP_CACHE 的高位,但由于打印了错误,情况似乎并非如此.
不过最后报错好像对申请没有影响
不确定这是否对其他人有帮助,但我发现我只在模拟器上遇到这个奇怪的错误!
所以可能是模拟器 ♂️ 的错误。
无论如何,我建议在真实设备上进行测试,因为这是第二次浪费我大量时间进行调查的这类问题,我不会再相信模拟器,尤其是当它们没有给出明确的错误时日志。
我在 logcat 中收到此警告作为我的应用程序的第一行,我不知道它指的是什么以及我应该如何修复它。 Google 没有提供太多这方面的信息(事实上,none 根本没有)。请指教。这可能是关于什么样的旗帜?有没有办法找出指定的位可能指的是什么(或者,也许,在旧的 Android 版本中指的是什么,但在 Android 10 中变得无效)? Android 9 或更早版本的日志中没有这样的行。
我搜索了一下,给你一些建议。
首先看看这个链接:
difference between constants 32768 and 0x8000
现在这个链接可能对你有帮助:
Android Fragment no view found for ID
FLAG_ACTIVITY_CLEAR_TOP
addFlags(0x8000)
最后一件事是:
再次从模拟器和运行项目中卸载应用程序。
第一次编辑:
我再次搜索,我认为我们接近回答了,所以请查看此链接并说出您的看法?他们无关紧要吗?或者我们走对了。
...
org.robolectric.res.android
Class配置
public static final int ACONFIGURATION_SCREEN_ROUND
...
\sdk\ndk-bundle\sysroot\usr\include\android
* Bit mask for
* <a href="@dacRoot/guide/topics/resources/providing-resources.html#LayoutDirectionQualifier">layout direction</a>
* configuration.
ACONFIGURATION_LAYOUTDIR = 0x4000,
ACONFIGURATION_SCREEN_ROUND = 0x8000
...
https://developer.android.com/ndk/reference/group/configuration
Constant : ACONFIGURATION_SCREEN_ROUND
->
Constant android_ndk_sys::ACONFIGURATION_SCREEN_ROUND
pub const ACONFIGURATION_SCREEN_ROUND: _bindgen_ty_3
->
Type Definition android_ndk_sys::_bindgen_ty_3
type _bindgen_ty_3 = u32;
...
ACAMERA_VENDOR = 0x8000
ACAMERA_DISTORTION_CORRECTION << 16,
ACAMERA_HEIC_START = ACAMERA_HEIC << 16,
ACAMERA_HEIC_INFO_START = ACAMERA_HEIC_INFO << 16,
ACAMERA_VENDOR_START = ACAMERA_VENDOR << 16
在我的情况下至少会发生,因为当另一个 activity 已经 运行 时片段试图更新视图(或类似的东西)所以只是
@Override
public void onStop() {
super.onStop();
getActivity().finish();
}
片段内部解决了这个错误
我带了一块石头到大楼。我回溯错误消息的代码。它位于 C++ 文件中的第 345 行 dalvik_system_ZygoteHooks.cc 至少,如果 (runtime_flags!= 0) 则将打印错误消息。 0x8000 也对应于 USE_APP_IMAGE_STARTUP_CACHE 标志(见第 157 行)。 USE_APP_IMAGE_STARTUP_CACHE 标志的测试在第 340 行完成。通常,runtime_flags 不应该再有 USE_APP_IMAGE_STARTUP_CACHE 的高位,但由于打印了错误,情况似乎并非如此.
不过最后报错好像对申请没有影响
不确定这是否对其他人有帮助,但我发现我只在模拟器上遇到这个奇怪的错误! 所以可能是模拟器 ♂️ 的错误。
无论如何,我建议在真实设备上进行测试,因为这是第二次浪费我大量时间进行调查的这类问题,我不会再相信模拟器,尤其是当它们没有给出明确的错误时日志。