Android致命信号11(SIGSEGV)为0x636f7d89(代码=1)。怎么能找到它?我一直在读其他关于追踪SIGSEGV在Android应用程序中。我计划搜索我的应用程序,寻找与画布使用相关的可能的NullPoint,但我的SIGSEGV每次打开一个不同的内存地址。而且我还见过code=1和code=2..如果内存地址是0x00000000我会有线索的-它是一只NullPoter。我得到的最后一个是code=2:A/libc(4969): Fatal signal 11 (SIGSEGV) at 0x42a637d9 (code=2)对如何追踪这件事有什么建议吗?我有个嫌疑犯,但我还不想用它做实验。我的应用程序使用OSMDroidAPI进行离线映射。OverlayItem类表示映射中的标记/节点。我有一个服务,通过网络收集数据,填充OverlayItem,然后显示在地图上。为了简化我的设计,我将OverlayItem扩展到我自己的NodeOverlayItem类中,其中包括我在UI活动和服务中使用的一些附加属性。这给了我UI和Service的一个项目信息点。当某些事情发生变化时,我使用INTENS向活动广播以刷新UI映射。该活动绑定到该服务,并且有一个获得NodeOverlayItem列表的服务方法。我认为这可能是OSMDroid API对OverlayItem的使用,以及我的服务同时更新节点信息。(并发问题)当我写这篇文章时,我认为这才是真正的问题。令人头疼的不是将Node和OverlayItem从NodeOverlayItem中分离出来,而是该活动将需要来自Node的一些数据,而这些数据是由服务保存的。加上创建活动的时间(onResume等)OverlayItem对象将需要从服务在活动离开时一直维护的Node数据重新创建。例如,启动应用程序,服务收集数据,UI显示它,然后返回到应用程序,活动将需要从最新的服务节点数据中提取并重新创建OverlayItem。我知道这不是个好问题,也不是一个清晰的问题。就像我所有的问题都是利基或模糊的。如果有人对如何解释这些问题有建议SIGSEGV错误,这将是非常感谢!
3 回答
qq_遁去的一_1
TA贡献1725条经验 获得超7个赞
- 3 回答
- 0 关注
- 1014 浏览
添加回答
举报
0/150
提交
取消