说下最近遇到的一个bug。我写了一个sdk,接入一个游戏的时候,点击sdk界面上的按钮,出现了崩溃。
最开始排查到是使用retrofit+okhttp框架导致的,换成volley、okhttp、原生httpClient都不会崩溃。但是使用Eventbus进行跳转的时候又崩溃了。最后在一个技术大牛的指导下,发现是我的sdk的eventbus库和游戏中一个音频sdk的eventbus库冲突导致,将eventbus换成音频sdk的eventbus库就解决问题了。
崩溃日志如下:
没有显示java层sdk的崩溃,而是系统的dvm库崩溃,无从查起。后来在大牛的指导下,0x0003000a可能是栈溢出,或者申请内存出现导致的,后来才想到可能是eventbus导致的递归调用导致栈溢出崩溃的。最后下载eventbus源码,然后放到自己的应用中,变成自己的包名下的EventBus,这样就不会导致冲突了。总结:写sdk尽量使用原生的api,少用第三方框架,容易导致冲突。
Android SDK开发
最新推荐文章于 2024-03-13 21:58:33 发布
本文记录了一次SDK集成过程中的bug排查经历。通过更换网络请求框架和事件总线库,最终定位到两个不同库间的冲突,并给出了有效的解决方案。
1105

被折叠的 条评论
为什么被折叠?



