异常:GLMapEngine.destroyAMapEngine(GLMapEngine.java:1851)
1 问题描述
Android App 中调用高德地图功能(显示地图、地图选择地点),均能正常使用,然后在关闭APP页面里,APP崩溃。
抛出日志如下:
手机运行环境如下:
2 解决方式
AndroidManifest.xml文件中 的 application 标签中加入:
android:allowNativeHeapPointerTagging="false"
3 原因分析
下载高德地图SDK提供的DEMO测试时却发现,DEMO运行没有任何问题。比较DEMO和我们自己的代码,显示地图的关键代码没有任何不同,唯一不同的是
在 build.gradle 文件中,DEMO的targetSdkVersion是26,我们的targetSdkVersion是32。
4 allowNativeHeapPointerTagging 是什么?
安全方面 堆指针标记:
堆指针在最高有效字节 (MSB) 中有一个非零标记。错误地使用指针的应用(包括修改 MSB 的应用),现在会崩溃或遇到其他问题。这是支持未来启用了 ARM 内存标记扩展 (MTE) 的硬件所必需的变更。