首页 > 解决方案 > WebRtcAudioRecord.context 由泄漏金丝雀报告泄漏。怎么解决?

问题描述

我的 webrtc Android 本机应用程序与WebRtcAudioRecord.context. 泄漏金丝雀不断报告WebRtcAudioRecord.class正在泄漏内存。

我确实以这种方式处理我的 webrtc 组件:

 peerConnection?.dispose()
 videoCapture?.dispose()
 videoSource?.dispose()
 factory.dispose()
 PeerConnectionFactory.stopInternalTracingCapture()
 PeerConnectionFactory.shutdownInternalTracer()

但是泄漏金丝雀仍然不断报告WebRtcAudioRecord.context泄漏。知道如何解决这个问题吗?

我的应用程序不流式传输音频只是流式传输视频。

这是金丝雀内存泄漏报告:

┬──── │ GC Root:本机代码中的全局变量 │ ├─ org.webrtc.audio.WebRtcAudioRecord 实例 │ 泄漏:未知 │<br /> 在 2 个对象中保留 99 B │ .ui.activities 的上下文实例。│ MainActivity with mDestroyed = true │ ↓ WebRtcAudioRecord.context │</p>

╰→ .ui.activities.MainActivity 实例​泄漏:YES(ObjectWatcher 正在观看这个,因为 .ui.activities.MainActivity 收到了 Activity#onDestroy() 回调并且 Activity#mDestroyed 为真)​在 2750 个对象中保留 153.0 kB ​key = 33e94f80-0004-4aeb-b351-dab64a8280da ​ watchDurationMillis = 5134 ​retainedDurationMillis = 134 ​ mApplication .App 实例 ​ mBase androidx.appcompat.view.ContextThemeWrapper 实例

元数据

Build.VERSION.SDK_INT: 29 Build.MANUFACTURER: HUAWEI LeakCanary 版本: 2.6 应用进程名称: some.app 保留但清除的计数: 10 KeyedWeakReference 实例统计: LruCache[maxSize=3000,hits=4250,misses=80514,hitRate= 5%] RandomAccess[bytes=4071605,reads=80514,travel=36763422162,range=23400016,size=29 171709]堆转储原因:8个保留对象,app可见分析持续时间:4019 ms

在此处输入图像描述

标签: androidkotlinmemory-leakswebrtcleakcanary

解决方案


推荐阅读