2011-01-06 12 views
8

Sto sperimentando con proguard ora che è più semplice da usare da all'interno di eclissi. Ho esportato una versione firmata della mia app con un bug intenzionale che causa un arresto anomalo per il test. Dopo aver ottenuto lo stack e eseguito retrace -verbose mapping.txt stack.txt, invece di assegnandomi dove si verifica l'errore, mi viene assegnata la classe in cui si verifica l'errore ed è elencato un metodo, uno dei quali è il metodo dove si verifica l'eccezione .Uscita strumento Proguard retrace

Ho usato la guida ufficiale per tutto questo e modificato l'acquisizione della traccia dello stack logcat nello stesso formato della console di sviluppo. Qualcuno sa quale potrebbe essere il problema?

risposta

14

Se il codice offuscato non contiene informazioni sul numero di riga, l'associazione di un nome di metodo offuscato (come 'a') al nome del metodo originale non è più possibile in modo univoco, a causa del sovraccarico del nome. Il examples in the ReTrace manual illustra la differenza.

Per evitare questo effetto, è possibile conservare le informazioni sul numero di riga nella fase di offuscamento, come mostrato in un example in the ProGuard manual.

+0

Il manuale di ritraccia non sembra essere accessibile fino ad oggi. Ho abilitato 'LineNumberTable' ecc, e posso vedere i numeri di riga nel mio file di mappatura, ma il tracciamento non può ancora disambiguare tra i metodi. – HRJ

+0

Potrebbe voler correggere il collegamento: la pagina non esiste più. –