2013-04-26 7 views
7

La mia app funziona perfettamente senza proguard abilitato, ma quando lo abilito l'app si blocca immediatamente. Ho provato molte combinazioni nella configurazione senza alcun risultato.App Crashing con Proguard abilitato

C'è qualcosa che dovrei tenere che mi manca?

Proguard config: https://gist.github.com/hanleyhansen/99fc07807950bae8e4f5

registro Unobfuscated: https://gist.github.com/hanleyhansen/6cba7fc941a79d85802f

onSuccess(): https://gist.github.com/hanleyhansen/e7a4916c42d3ca065c99

+0

È possibile disattivare l'offuscamento ma lasciare abilitate le altre opzioni (ottimizzazione, rimozione metodo)? Se fallisce ancora, sarai in grado di vedere esattamente dove si sta rompendo. – fadden

+0

@fadden Buona idea. Come potrei farlo? – hanleyhansen

+1

Puoi rintracciare quale linea in 'onSuccess()' lancia l'NPE? –

risposta

6

Ho trovato il codice incriminato. Ho cambiato il mio Proguard.cfg per abbinare il seguente:

https://github.com/google/gson/blob/9f8ace9ac4c56b82eba1bbd8b44f80e042bda7e0/examples/android-proguard-example/proguard.cfg

E ora tutto funziona!

+1

sembra che il collegamento sia interrotto, ottenendo "l'hosting SVN è stato disabilitato in modo permanente" –

+0

Sì, sarebbe davvero bello se si collegasse semplicemente il codice che si utilizzava. –

+0

Non so quale revisione, ma il file è https://github.com/google/gson/commits/master/examples/android-proguard-example/proguard.cfg – Lev

3

solito Proguard rimuove alcune classi se non sono esplicitamente impostati come

-keepclassmembers .... 

Ma tale gli errori vengono visualizzati come classNotFound, NoSuchMethodException ecc.,

Comunque decodificare il gatto registro sei stato utilizzando this e verificare cosa effettivamente causato il NPE.

+0

Grandi cose! Ok ho aggiornato la mia risposta con la discarica non offuscata. – hanleyhansen

+1

Sono stato in grado di risolverlo! – hanleyhansen

+0

O almeno così pensavo ... ho aggiornato la mia domanda con il mio nuovo codice. – hanleyhansen