WebRtcAudioRecord.context 是由泄漏金丝雀报告的泄漏怎么解决?

问题描述

我的 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 毫秒

enter image description here

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)