google android google-analytics easytracker

google - firebase analytics android



Excepción no detectada en Google Analytics con Easytracker (2)

Utilizo una herramienta de código abierto llamada ACRA para informes de excepciones no detectadas. Proporciona mucha más información que Google Analytics o Flurry do, y envía informes a Google Docs, a los cuales puede recibir notificaciones por correo electrónico para cada informe agregado.

Yo uso Google Analytics para el resto.

Estoy usando solo esto en cada actividad:

@Override public void onStart() { super.onStart(); EasyTracker.getInstance().activityStart(this); } @Override public void onStop() { super.onStop(); EasyTracker.getInstance().activityStop(this); }

y pasando por este documento

Lo descubrí:

Usando EasyTracker
Para rastrear automáticamente todas las excepciones no detectadas en su aplicación usando EasyTracker, agregue esta línea a su archivo analytics.xml:

<bool name="ga_reportUncaughtExceptions">true</bool>

Después de rastrear una excepción mediante el seguimiento automático de excepciones, EasyTracker pasará la excepción al manejador de excepciones predeterminado del Thread.

Cuando utilice el seguimiento automático de excepciones, tenga en cuenta lo siguiente:

  1. Todas las excepciones rastreadas a través del seguimiento automático de excepciones se informan como fatales en Google Analytics.
  2. El campo de descripción se rellena automáticamente utilizando el seguimiento de la pila.

Pero cuando obtengo una excepción UncaughtException y la aplicación falla, en la descripción de Google Analytics, solo muestra:

An error occured while executing doInBackground()

no es el Stack Trace como se menciona en los puntos anteriores. Cualquier cosa necesita ser agregado ??

Gracias


Debería usar un analizador de excepciones personalizado para obtener toda la stacktrace

import org.apache.commons.lang3.exception.ExceptionUtils; import com.google.analytics.tracking.android.ExceptionParser; public class AnalyticsExceptionParser implements ExceptionParser { public String getDescription(String p_thread, Throwable p_throwable) { return "Thread: " + p_thread + ", Exception: " + ExceptionUtils.getStackTrace(p_throwable); } }

y establecer esto como predeterminado en tu actividad, como

public void setupGoogleAnalyticsCrashReportParser() { EasyTracker.getInstance().setContext(this); Thread.UncaughtExceptionHandler uncaughtExceptionHandler = Thread.getDefaultUncaughtExceptionHandler(); if (uncaughtExceptionHandler instanceof ExceptionReporter) { ExceptionReporter exceptionReporter = (ExceptionReporter) uncaughtExceptionHandler; exceptionReporter.setExceptionParser(new AnalyticsExceptionParser()); } }

Espero que esto ayude a alguien.