2013-11-15 41 views
8

Come rintracciare la mia app Proguard Android con il rapporto sugli arresti anomali in Google Analytics. Alcuni esempi come segue:Google Analytics ripercorre Proguard

Nota: quando i rapporti sugli arresti anomali vengono eseguiti dall'utente con Google App Console, è possibile utilizzare il rinvio OK con il file mapping.txt.

esempi (da Google Analytics Arresti di comportamento e eccezioni)

  • RuntimeException (@a:a:-1) {main}

  • IllegalStateException (@f:a:-1) {main}

  • NullPointerException (@MainActivity:M:-1) {main}

  • NullPointerException (@a:l:-1) {main}

  • NullPointerException (@al:run:-1) {main}

risposta

3

ho appena iniziato la raccolta di statistiche, e corse in questo io stesso. Da un'eccezione che è successo a me su un apk non-offuscato, la sintassi sembra essere:

exception-name (@class-name:method-name:line-number) {thread-name} 
  • class-name: Se questo è offuscato, allora sei di solito bloccato, perché il nome del pacchetto è non riportato. A volte potresti essere in grado di trovare la classe, come nel tuo esempio 'al', perché la maggior parte dei pacchetti non avrà quel numero di classi (cerca '-> al').
  • nome-metodo: Se il nome della classe non è offuscato (alcuni nomi di classe devono essere esclusi dall'offuscamento perché l'app funzioni), puoi provare a cercare il metodo nel mapping.txt. Spesso ci saranno più metodi con la stessa mappatura (ma diverse firme di chiamata). Poiché non è possibile distinguere tra loro, è necessario verificarli tutti per vedere se potrebbero aver causato l'eccezione.
  • Numero di riga: non utilizzabile poiché è offuscato (-1).

Conclusione: con il reporting standard, la maggior parte delle volte non si è in grado di scoprire cosa ha causato l'eccezione. Sembra che ci sia la possibilità di configurare un parser di eccezioni personalizzato, che potrebbe consentire di includere l'intero frame dello stack. Non ho ancora provato questo, ma ho trovato una descrizione promettente in this answer.