2013-01-02 14 views
5

sto usando proprio questo in ogni attività:eccezione non identificata in Google Analytics utilizza EasyTracker

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

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

e passare attraverso questo doc

ho scoperto:

Utilizzando EasyTracker
Per monitorare automaticamente tutte le eccezioni non rilevate nella tua app usando EasyTracker, aggiungi questo ine al file analytics.xml:

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

Dopo tracciamento un'eccezione utilizzando il monitoraggio automatico di eccezione, EasyTracker passerà l'eccezione al gestore di eccezioni di default del thread.

Quando si utilizza il rilevamento automatico eccezione, tenere presente quanto segue:

  1. Tutte le eccezioni rilevate tramite il rilevamento automatico eccezione sono riportati fatale in Google Analytics.
  2. Il campo della descrizione viene popolato automaticamente utilizzando la traccia di stack.

Ma quando ottengo un UncaughtException e l'applicazione si blocca, nella descrizione di Google Analytics, mostra solo:

An error occured while executing doInBackground() 

non lo Stack Trace come detto nei punti di cui sopra. Ogni cosa deve essere aggiunta ??

Thank You

+0

Questa è la soluzione migliore che ho trovato finora: http://stackoverflow.com/questions/14009883/exception-stack-trace-lost-in-google-analytics-v2-for-android – tofi9

+0

Upvoting this, I am di fronte allo stesso problema. Non capisco perché Easytracker mostri solo l'ultima riga della traccia dello stack ... – Radu

+0

Esatta la stessa situazione qui. Hai mai trovato una soluzione? – theblang

risposta

4

ho utilizzare uno strumento open source chiamato ACRA per la segnalazione eccezione non rilevata. Fornisce molte più informazioni di quelle di Google Analytics o Flurry e invia report a un documento Google, al quale è possibile ricevere notifiche via email per ogni report aggiunto.

Io uso Google Analytics per il resto.

+0

Usi qualcosa come Bugsense con ACRA? Uso ACRA anche ma non è bello vedere gli errori nel foglio di calcolo –

+0

Per ogni versione di cui ho eseguito il backup dei file di dump proguard, e ho scritto un piccolo script per rintracciare la traccia dello stack rispetto al dump corretto. Sono migrato a Crashlytics più tardi. Ha una capacità di cattura come ACRA e fa automaticamente il tracciamento. – auval

3

si dovrebbe usare un parser eccezione personalizzata per ottenere l'intera 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); 
} 
} 

e impostarla come predefinita in voi attività, come

public void setupGoogleAnalyticsCrashReportParser() { 

    EasyTracker.getInstance().setContext(this); 

    Thread.UncaughtExceptionHandler uncaughtExceptionHandler = Thread.getDefaultUncaughtExceptionHandler(); 
    if (uncaughtExceptionHandler instanceof ExceptionReporter) { 
     ExceptionReporter exceptionReporter = (ExceptionReporter) uncaughtExceptionHandler; 
     exceptionReporter.setExceptionParser(new AnalyticsExceptionParser()); 
    } 
} 

Spero che questo aiuti a qualcuno.

Problemi correlati