2016-03-23 23 views
0

Yakın bir zamanda projemde proguard kullanmaya başladım.android retrace proguard (yapı api 23)

03-23 10:12:26.030 4956-4956/social.game.dating E/AndroidRuntime: FATAL EXCEPTION: main 
java.lang.NullPointerException 
at social.game.dating.App.App.void initSync()(Unknown Source) 
at social.game.dating.App.App.void access$100()(Unknown Source) 
at social.game.dating.App.App$InitTask.java.lang.Void doInBackground(java.lang.Void[])(Unknown Source) 
void onPostExecute(java.lang.Void) 
at social.game.dating.App.App$InitTask.void onPostExecute(java.lang.Object)(Unknown Source) 
at android.os.AsyncTask.finish(AsyncTask.java:631) 
at android.os.AsyncTask.access$600(AsyncTask.java:177) 
at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:644) 
at android.os.Handler.dispatchMessage(Handler.java:99) 
at android.os.Looper.loop(Looper.java:137) 
at android.app.ActivityThread.main(ActivityThread.java:5041) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:511) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 
at dalvik.system.NativeStart.main(Native Method) 

yüzden: Bir sonraki kod obfuskate, ve almak için

java -jar retrace.jar -verbose d:/mapping.txt d:/obf.txt > d:/fixed.txt 

03-23 10:12:26.030 4956-4956/social.game.dating E/AndroidRuntime: FATAL EXCEPTION: main 
java.lang.NullPointerException 
at social.game.dating.App.App.m(Unknown Source) 
at social.game.dating.App.App.l(Unknown Source) 
at social.game.dating.App.App$a.a(Unknown Source) 
at social.game.dating.App.App$a.onPostExecute(Unknown Source) 
at android.os.AsyncTask.finish(AsyncTask.java:631) 
at android.os.AsyncTask.access$600(AsyncTask.java:177) 
at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:644) 
at android.os.Handler.dispatchMessage(Handler.java:99) 
at android.os.Looper.loop(Looper.java:137) 
at android.app.ActivityThread.main(ActivityThread.java:5041) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:511) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 
at dalvik.system.NativeStart.main(Native Method) 

koşuyorum senaryo - Ben önümüzdeki hata aldı (Uygulama sınıfında) testi kazasında yarattı sadece alınan yöntem, wich istisnası yakalandı. Mümkünse hattı almak istiyorum, lütfen yardım edin!

PS de, ben

retrace.bat -verbose d:/mapping.txt d:/obf.txt > d:/out.txt 

denenmiş ve

+0

geri yüklemenize izin verecek olan sınıf adı ve satır numarasına sahip olacağım, sadece ben -keepattributes ** eklediğimi buldum doğru satır numarasını al –

cevap

1

Sen yapılandırma dosyasını ProGuard yanındaki kural eklemek gerekir aynı sonucu aldı: Eğer gerçek kaynağını gizlemek isterseniz

-keepattributes SourceFile,LineNumberTable 

dosya adı sonraki kuralı ekleyin:

ve tüm dosya adları, SomeName.java olarak yeniden adlandırılacaktır, ancak deobfuscation'dan sonra, gerçek kod satırı

+0

ne -keepattributes ** kullanırsam? Ben başkalarını tutacağım, hangi obuskate/rename için daha iyi olurdu? –

+1

@AntonKizema Olası tüm özniteliklere sahip olacak, tam liste burada http://proguard.sourceforge.net/manual/attributes.html ama bunların hepsini tutmanın harika bir fikir olduğunu sanmıyorum. – curioushikhov

İlgili konular