MainActivity просочилась с помощью утечки

Я использую Leak Canary для отслеживания утечки памяти, и он говорит следующее:

static hk.o 
references ht.a 
leaks MainActivity instance

что hk.o а также ht.a? У меня их нет в моей MainActivity.

3 ответа

Эти классы являются сторонними библиотечными классами. Вы можете взять свой экземпляр MainActivity в качестве аргумента и передать, какой экземпляр класса принадлежит библиотеке. Вы можете использовать ApplicationContext в качестве аргумента, если нет необходимости передавать в Activity.

Я думаю, что это защищенные (переименованные классы со случайными именами для предотвращения обратного инжиниринга) любой из зависимостей. Я видел это, когда в приложении используются такие вещи, как Google Sign In.

Классы Сервисов Google, как правило, Pro Proarded.

Надеюсь, это поможет.

Я разыскал это, и виновником является Google Ads. Классы, которые вы упомянули, на самом деле из библиотеки com.google.ads.interactivemedia.v3:interactivemedia, который входит в play-services-ads,

Ссылка на действие была установлена ​​через конструктор PublisherAdViewгде я прошел контекст деятельности. Возможно, вы также используете похожий вид рекламы в своем приложении.

В качестве обходного пути я теперь передаю контекст приложения в представление рекламы, которое, по-видимому, устранило утечку:

new PublisherAdView(getContext().getApplicationContext())
Другие вопросы по тегам