高德地图调用mapView.onDestroy() 崩溃问题

问题描述

最近在使用高德地图SDK的过程中遇到了一个问题,就是在API 31以上版本调用mapView.onDestroy()方法时会导致程序崩溃。经过一番搜索和尝试,可以通过以下方式来解决这个问题。

问题梳理 / 解决

那么,这个问题为什么会出现呢?据了解,Android 11引入了一项新的安全特性,即Heap Pointer Tagging。这个特性可以使应用的堆指针更安全,避免被恶意程序利用。但是,一些SDK或第三方库可能不支持这个特性,导致在使用它们时出现问题。高德地图的DEMO使用的是targetSdkVersion=26,所以不会出现此问题。

对于高德地图SDK来说,在API 31以上版本调用mapView.onDestroy()方法时就会出现这个问题。这时候,我们就可以在AndroidManifest.xml文件中的application标签中加入以下属性:

android:allowNativeHeapPointerTagging="false"

这样,就可以关闭Heap Pointer Tagging特性,避免出现调用mapView.onDestroy()崩溃的问题了。

需要注意的是,关闭Heap Pointer Tagging特性可能会影响应用的安全性。因此,应该在必要的情况下才使用这个方法。如果能够升级高德地图SDK或等待高德方面发布修复版本,那就更好了。

总结

总之,对于遇到高德地图SDK在API 31以上版本调用mapView.onDestroy()崩溃问题的开发者,可以尝试在AndroidManifest.xml文件中加入android:allowNativeHeapPointerTagging="false"来解决。

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Android程序Su

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值