崩溃问题,地图应用,在操作地图放大、旋转、缩小过程,概率性出现应用无响应(appfreeze)
地图应用,在操作地图放大、旋转、缩小过程,概率性出现应用无响应(appfreeze)。
HarmonyOS
赞
收藏 0
回答 1
相关问题
HarmonyOS 地图双指放大缩小后获取当前的zoom
698浏览 • 1回复 待解决
造成应用无响应(appfreeze)故障的原因主要有哪些
3362浏览 • 1回复 待解决
【Map Kit】地图无瓦片,地图显示空白,地图无法加载
1853浏览 • 1回复 待解决
HarmonyOS 查看大图组件,支持多图,可放大缩小,本地图片、网络图片均可
546浏览 • 1回复 待解决
HarmonyOS 如何放大缩小整个应用的字体大小
1328浏览 • 1回复 待解决
概率性报错5400104、5400103怎么处理
1352浏览 • 1回复 待解决
HarmonyOS如何打开外部地图应用
1188浏览 • 1回复 待解决
HarmonyOS 点击图片放大缩小
823浏览 • 1回复 待解决
鸿蒙使用webview,加载百度地图,加了缩放权限,但不能手势放大地图是什么原因,可以双击放大
1868浏览 • 0回复 待解决
HarmonyOS 地图相关问题
1538浏览 • 1回复 待解决
在HarmonyOS开发中关于地图的路径规划无划线,怎么回事?
746浏览 • 0回复 待解决
HarmonyOS 地图呈现问题
859浏览 • 1回复 待解决
HarmonyOS地图使用问题
959浏览 • 1回复 待解决
如何在HarmonyOS应用中集成地图功能?
842浏览 • 0回复 待解决
HarmonyOS 组件放大缩小demo
671浏览 • 1回复 待解决
如何处理应用卡死(appfreeze)问题
2911浏览 • 1回复 待解决
HarmonyOS 相机预览是否支持放大缩小
660浏览 • 1回复 待解决
3861L,在写入NV数据时,出现概率性卡死现象,也不会重启,请问有大佬知道原因吗
8193浏览 • 3回复 待解决
HarmonyOS 唤起到三方的地图应用
822浏览 • 1回复 待解决
HarmonyOS 地图城市显示问题
596浏览 • 1回复 待解决
HI3861芯片,执行接口hi_wifi_sta_start()概率性出现死机,请问有人遇见过类似问题吗
7505浏览 • 1回复 待解决
HarmonyOS 应用崩溃日志问题
1438浏览 • 1回复 待解决
对于鸿蒙应用中的地图功能开发,有哪些可用的地图 SDK 及使用方法?
267浏览 • 0回复 待解决
HarmonyOS 地图不展示,显示空地图,地图加载不出来
1245浏览 • 1回复 待解决
HarmonyOS taskpool中执行的function时,tid概率性相同
726浏览 • 1回复 待解决
使用工具
DevEco Studio NEXT Developer Preview2
定位过程
分析crash日志,发现11048线程发送事件后,一直没有手动响应,如下:
继续往下分析crash日志,发现该线程存在锁处理,并处于等待状态中,如下:
根据这里的调用关系,分析CVHttpClient::DetachHttpEventObserver函数处理,发现该函数会通过锁来释放CVHttpClient类的成员变量资源,释放资源使用已经封装好的自定义remove函数。
初步怀疑,应该是成员变量的remove函数里存在类的析构处理,使用到了锁,而该锁在其他调用时,没有释放,而remove里使用到的释放资源是已经稳定的公共类接口,经过了许多项目考验,不会存在问题。
进一步分析得知,该成员变量是一个模板类的数组成员,那么,这里的模板使用的类是否存在异常处理。
进入分析模板使用的类的实现,首先查看该类定义的成员变量,发现里面存在定义的成员存在CVHttpClient类,继续分析释放的处理,先看析构函数,此时,发现析构函数中,对CVHttpClient类使用了delete操作,这样就存在了锁的两次调用。
这里不应该将资源释放调,应该将资源释放到已经写好的模块中管理起来,见下(注释是修改前的,修改后的是24~27行):
修改完毕后,为验证是否是这个原因引起的问题,在CVHttpClient::DetachHttpEventObserver函数,以及上面截图的析构函数中,增加打印,验证业务是否会同时运行进来,经验证,业务会同时进入,至此,问题解决。
根因总结
代码中,存在循环成员包含情况,在资源释放过程中,发生了死锁。
解决方案
已经封装了全局管理模块,释放的成员,直接放到管理模块的数据中,不需要释放作析构处理。