2013-07-25 22 views
5

Ho scaricato un rapporto di arresto anomalo dall'area amministrativa di Google Play della mia app, lo ho eseguito tramite retrace.sh per deoffuscare la mappatura Proguard e ha prodotto l'output di seguito.Come interpretate un rapporto di arresto anomalo Android deoffuscato?

Domande:

ciò che è sconosciuto Source?

showHeader, showPhoto, ecc. Sono effettivamente metodi nella mia classe SummaryFragment, ma perché sono elencati nell'ordine mostrato? Questi metodi non seguono alcun tipo di ordine logico o di esecuzione nel mio codice.

In quale metodo è stato effettivamente lanciato l'NPE?

Caused by: java.lang.NullPointerException 
at com.myapp.SummaryFragment.selectMenuItemAuth(Unknown Source) 
              showHeader 
              photoButtonClicked 
              showPhoto 
              nameButtonClicked 
              deleteByID 
              access$0 
at com.myapp.SummaryFragment.onActivityCreated(Unknown Source) 
at android.support.v4.app.Fragment.performActivityCreated(Unknown Source) 
at android.support.v4.app.FragmentManagerImpl.moveToState(Unknown Source) 
               moveToState 
               moveToState 
               moveToState 

risposta

7

ProGuard ha rimosso opzionale attributi SourceFile e LineNumberTable dall'applicazione offuscato. Di conseguenza, le tracce dello stack non hanno numeri di riga, causando alcune ambiguità. ReTrace stampa un elenco di possibili alternative per ogni linea della traccia dello stack.

È possibile ottenere tracce di stack che sono più facili da interpretare aggiungendo le seguenti righe al proguard-project.txt:

-renamesourcefileattribute MyApplication 
-keepattributes SourceFile,LineNumberTable 

consultare il manuale ProGuard> ripercorrere>Usage.

Vedere il manuale di ProGuard> Esempi>Producing useful stack traces

Problemi correlati