android - studio - MainActivity se filtró utilizando fugas
change main activity name android (3)
Esas clases son clases de biblioteca de terceros. Puede tomar su instancia de MainActivity como un argumento y pasar a qué instancia de la clase pertenece la biblioteca. Puede usar ApplicationContext como argumento si no es necesario pasar la Actividad.
Estoy usando Leak Canary para rastrear la pérdida de memoria y dice que se filtraron los siguientes:
static hk.o
references ht.a
leaks MainActivity instance
¿Qué es el hk.o
y ht.a
? No los tengo en mi MainActivity.
Pienso que estas son pro custodiadas (clases renombradas con nombres aleatorios para evitar la ingeniería inversa) de cualquiera de las dependencias. He visto esto cuando se utilizan en la aplicación cosas relacionadas como el inicio de sesión de Google.
Las clases de servicios de Google son generalmente Pro Guarded.
Espero que esto ayude.
Rastreé esto, y el culpable es Google Ads. Las clases que mencionó son en realidad de la biblioteca com.google.ads.interactivemedia.v3:interactivemedia
, que se incluye con play-services-ads
.
La referencia a la actividad se estableció a través del constructor de PublisherAdView
, donde pasé el contexto de la actividad. Probablemente también esté utilizando una vista de anuncio similar en su aplicación.
Como solución alternativa, ahora paso el contexto de la aplicación a la vista de anuncios, que parece haber resuelto la filtración:
new PublisherAdView(getContext().getApplicationContext())