android:allowNativeHeapPointerTagging="false"
- 应用尝试释放系统堆分配器未分配的指针。
- 应用中的某个部分修改了指针的顶部字节。不能修改指针的顶部字节,您需要更改代码来修复此问题。
指针的顶部字节被错误使用或修改的示例包括:
- 指向特定类型的指针将特定于应用的元数据存储在前 16 个地址位中。
- 指针的类型转换为双精度,然后又恢复为原来的类型,因此丢失了较低的地址位。
- 代码计算不同堆栈帧的局部变量地址之间的差异,作为测量递归深度的方法。
某些应用可能依赖于在设置指针的顶部字节后行为不正确的库。我们认识到,快速修复库中的这些底层问题可能非常重要。因此,使用 targetSdkLevel < 30 的应用默认不会启用指针标记。我们还为使用 targetSdkLevel >= 30 构建的应用提供了一个缓解办法以便过渡。
这个办法就是在 AndroidManifest.xml 文件中添加以下内容:
<application
android:allowNativeHeapPointerTagging="false"