问题描述
我的 webrtc Android 本机应用程序有 WebRtcAudioRecord.context
问题。 Leak Canary 不断报告 WebRtcAudioRecord.class
正在泄漏内存。
我确实以这种方式处理我的 webrtc 组件:
peerConnection?.dispose()
videoCapture?.dispose()
videoSource?.dispose()
factory.dispose()
PeerConnectionFactory.stopInternalTracingCapture()
PeerConnectionFactory.shutdownInternalTracer()
但是 Leak canary 仍然不断报告 WebRtcAudioRecord.context
正在泄漏。
知道如何解决这个问题吗?
我的应用程序不流式传输音频,只是流式传输视频。
这是金丝雀内存泄漏报告:
┬─── │ GC Root:本机代码中的全局变量│ ├─
org.webrtc.audio.WebRtcAudioRecord 实例 │ 泄漏:未知 │
在 2 个对象中保留 99 个 B │ .ui.activities 的上下文实例。 │
MainActivity with mDestroyed = true │ ↓ WebRtcAudioRecord.context │
╰→ .ui.activities.MainActivity 实例泄漏:是 (ObjectWatcher 正在看这个,因为 .ui.activities.MainActivity 收到 Activity#onDestroy() 回调和 Activity#mDestroyed 是真的) 在 2750 个对象中保留 153.0 kB 关键 = 33e94f80-0004-4aeb-b351-dab64a8280da watchDurationMillis = 5134 retainedDurationMillis = 134 .App 的 mApplication 实例 androidx.appcompat.view.ContextThemeWrapper 的 mBase 实例
元数据
Build.VERSION.SDK_INT: 29 Build.MANUFACTURER: HUAWEI LeakCanary 版本:2.6 应用进程名称:some.app 保留未清除计数: 10 个 KeyedWeakReference 实例统计: LruCache[maxSize=3000,hits=4250,misses=80514,hitRate=5%] 随机访问[字节=4071605,读取=80514,旅行=36763422162,范围=23400016,大小=29 171709] 堆转储原因:8 个保留对象,应用程序可见 分析 持续时间:4019 毫秒
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)