关于高德地图崩溃的问题
开发中依赖高德地图sdk
implementation 'com.amap.api:search:8.1.0'
implementation 'com.amap.api:3dmap:9.1.0'
使用中并无问题,但在页面finish的时候按照文档销毁资源的时候却出现了问题。
代码如下,我在页面销毁时,调用销毁地图资源的方法,并在前后都加上了日志。
@Override public void onDestroy() { super.onDestroy(); Log.d(TAG, "onDestroy()"); if (null != mMapView) { Log.d(TAG, "mMapView onDestroy()"); mMapView.onDestroy(); Log.d(TAG, "mMapView onDestroy() end"); } }
结果在退出页面后,app就崩了。
"mMapView onDestroy()"日志正常输出,但是却没有"mMapView onDestroy() end"的日志,实际上我打断点追进去也确定了,崩溃就是发生在MapView的onDestory方法内部,但里面都是混淆过的代码,实在找不到原因。
而且这崩溃并没有抛出明确的异常,我用try-catch没有效果;将其放入子线程也无法阻止应用崩溃。
好消息,官方客服终于给了有用的解答。
在清单文件中的application里加上android:allowNativeHeapPointerTagging="false"
亲测有效。