首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MainActivity使用leakcanary泄漏

MainActivity使用leakcanary泄漏
EN

Stack Overflow用户
提问于 2017-02-26 11:32:24
回答 3查看 1K关注 0票数 17

我正在使用Leak Canary来跟踪内存泄漏,它显示以下内容已泄漏:

代码语言:javascript
复制
static hk.o 
references ht.a 
leaks MainActivity instance

什么是hk.oht.a?我的MainActivity里没有。

EN

回答 3

Stack Overflow用户

发布于 2017-05-06 13:51:38

我认为这些是任何一个依赖项的高级保护(用随机名称重命名的类,以防止反向工程)。当应用程序中使用谷歌登录等相关内容时,我就看到了这一点。

Google服务类通常是受Pro保护的。

我希望这能帮到你。

票数 3
EN

Stack Overflow用户

发布于 2017-05-12 11:49:55

这些类是第三方库类。您可以将您的MainActivity实例作为参数,并在其中传递哪个类的实例属于库。如果不需要传入活动,则可以使用ApplicationContext作为参数。

票数 3
EN

Stack Overflow用户

发布于 2017-05-26 02:31:48

我追踪到了这一点,罪魁祸首是谷歌广告。您提到的类实际上来自play-services-ads附带的库com.google.ads.interactivemedia.v3:interactivemedia

对活动的引用是通过PublisherAdView的构造函数设置的,我在其中传递了活动上下文。可能你也在你的应用程序中使用类似的广告视图。

作为一种变通方法,我现在将应用程序上下文传递给广告视图,这似乎已经解决了泄漏:

代码语言:javascript
复制
new PublisherAdView(getContext().getApplicationContext())
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42464429

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档