2013-04-26 14 views
7

Moja aplikacja działa idealnie bez włączonego proguardu, ale kiedy ją włączę, aplikacja natychmiast się zawiesza. Próbowałem wielu kombinacji w konfiguracji bezskutecznie.App Crashing With Proguard Enabled

Czy jest coś, co powinienem zatrzymać, czego mi brakuje?

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

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

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

+0

Czy można wyłączyć obfuskację, ale pozostawić włączone inne opcje (optymalizacje, usuwanie metod)? Jeśli nadal się nie uda, będziesz w stanie dokładnie zobaczyć, gdzie się zrywa. – fadden

+0

@fadden Dobry pomysł. Jak to zrobić? – hanleyhansen

+1

Czy można wyśledzić, która linia w 'onSuccess()' wyrzuca NPE? –

Odpowiedz

6

Znalazłem kod naruszający prawa. Zmieniłem Proguard.cfg dopasować następujące:

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

a teraz wszystko działa!

+1

Wygląda na to, że łącze jest zepsute, otrzymując "Hosting SVN został trwale wyłączony" –

+0

Tak, byłoby naprawdę fajnie, gdybyś po prostu przyłączył kod, którego używałeś. –

+0

Nie wiem, która wersja, ale plik jest na https://github.com/google/gson/commits/master/examples/android-proguard-example/proguard.cfg – Lev

3

Zazwyczaj PROGUARD usuwa kilka klas, jeśli nie są one wyraźnie określone jako

-keepclassmembers .... 

ale takie błędy są wyświetlane jako classNotFound, NoSuchMethodException itd ..,

Anyways zdekodować kota dziennika zostałeś korzystając this i sprawdzić, co rzeczywiście spowodowało NPE.

+0

Świetne rzeczy! Ok i zaktualizowałem swoją odpowiedź z nieoczywistym zrzutem. – hanleyhansen

+1

Udało mi się to naprawić! – hanleyhansen

+0

Tak przynajmniej sądziłem .... zaktualizowałem moje pytanie z nowym kodem. – hanleyhansen