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())