2016-03-23 11 views
0

最近私のプロジェクトではプロガードを使い始めました。android retrace proguard(ビルド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) 

をだから私は:次のコードをobfuskate、および受信する

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) 

私は実行するスクリプト - 私は次のエラーを受け取った (アプリケーションクラスの)テストのクラッシュを作成しました例外を捕捉したばかりのメソッドを受け取ったばかりです。私は可能な場合は、助けてください、行を取得したいと思います!

PSはまた、私はあなたが設定ファイルProGuardのために次のルールを追加する必要が

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

を試してみましたが、同じ結果

+0

-keepattributes **を追加すると見つかりました適切な行番号 –

答えて

1

を受けた:あなたは、実際のソースを非表示にする場合

-keepattributes SourceFile,LineNumberTable 

をファイル名を次の規則に追加:

-renamesourcefileattribute SomeName 

すべてのファイル名はSomeName.javaにリネームされますが、解読後にクラス名と行番号が表示され、実際のコード行を復元することができます

+0

を取得します。-keepattributes **を使用するとどうなりますか?私は別のものを保つだろう。それは、オブオカケ/名前を変更する方が良いだろうか? –

+1

@AntonKizemaそれはすべての可能な属性を保持します、完全なリストはここhttp://proguard.sourceforge.net/manual/attributes.htmlですが、私はそれらをすべて保持することは素晴らしいアイデアだとは思いません。 – curioushikhov

関連する問題