最近在集成声网Agora的视频SDK,用的是最新的2.2.1版本。
代码导致的问题是,输入频道号进入频道,第一次视频正常,再次输入不同的频道号进入频道,会导致一方的视频视图显示不出来,杀掉APP进程后,重新进入频道视频视图能显示。猜测是内存泄漏问题,采用LeakCanary内存泄漏检测工具,LeakCanary工具github地址 https://github.com/square/leakcanary,具体如何集成参考LeakCanary的README.md。
将LeakCanary集成到我的项目后,运行APP,发现果然是内存泄漏导致的视频视图不能显示。

在静态类AgoraManager的sAgoraManager实例中,引用了mOnPartyListener,造成SingleActivity结束时内存泄漏6.3KB。
解决方式:
在SingleActivity的onDestroy()方法中清空该引用

本文介绍了在Android应用中集成声网Agora 2.2.1版本视频SDK时遇到的内存泄漏问题。当切换不同频道时,视频视图无法正常显示。通过使用LeakCanary检测工具,发现在静态类AgoraManager的实例中,由于mOnPartyListener的引用导致SingleActivity内存泄漏。为解决此问题,可以在SingleActivity的onDestroy()方法中清除该引用,确保退出频道时销毁声网实例,防止SurfaceView泄漏。
最低0.47元/天 解锁文章
526

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



