liangjingkanji / Net

Android 基于协程/OkHttp网络请求工具
http://liangjingkanji.github.io/Net/
MIT License
1.87k stars 211 forks source link

每次调完接口后,都会出现有内存问题的日志 #180

Closed D-zy closed 1 year ago

D-zy commented 1 year ago

image

我是用了leakcanary工具检测的

6YK5 commented 1 year ago

这是GC回收内存的日志吧,臭宝

D-zy commented 1 year ago

// 自定义全局加载对话框 setDialogFactory { WidgetUtils.getLoadingDialog(it, "").setIconScale(0f) }

应该是这里引起的, 引用的是 implementation 'com.github.xuexiangjys:XUI:1.1.9' 这个依赖库的loading

6YK5 commented 1 year ago

棒哦臭宝,自己解决了

D-zy commented 1 year ago

用项目自带的 BubbleDialog(it) ,也会出现这个问题,咋弄??

D-zy commented 1 year ago

大臭宝宝,人呢

liangjingkanji commented 1 year ago

检测的日志在哪?

D-zy commented 1 year ago

image

liangjingkanji commented 1 year ago

你应该发LeakCanary的日志吧?

D-zy commented 1 year ago

是不是使用scopeDialog, 导致内存泄漏, GC的频繁回收内存

liangjingkanji commented 1 year ago

GC回收不等于内存泄漏, 而且我也无法复现你的问题, 请你在demo中测试而不是在你的项目中测试(因为我并没有你的项目代码)

我不希望由于猜测你项目bug来浪费维护框架时间, 如果你迟迟不提交leakCanary的泄露日志, 我将关闭本问题

liangjingkanji commented 1 year ago

本项目demo现在默认自带LeakCanary内存检测, 你可以打开app查看是否存在内存泄漏

如果你依然触发gcc请再多检查自己项目代码, 或者你可以尝试关闭第三方通知栏日志, 删除App.kt以下代码

// 通知栏监听网络日志
if (BuildConfig.DEBUG) {
    addInterceptor(
        ChuckerInterceptor.Builder(this@App)
            .collector(ChuckerCollector(this@App))
            .maxContentLength(250000L)
            .redactHeaders(emptySet())
            .alwaysReadResponseBody(false)
            .build()
    )
}
D-zy commented 1 year ago

谢谢啦,知道了, 是项目里引用的另一个版本的LeakCanary:2.6,导致引起的, 去掉后,gc日志就没有了