0
我在我的應用程序中使用ProGuard,問題是當用戶向我的控制檯報告一些問題,並且由於「未知來源」而無法精確解碼。如何精確解碼ProGuard的混淆代碼?
這裏是例如堆棧跟蹤的:
java.lang.ArrayIndexOutOfBoundsException: length=1; index=1
at com.my.package.j.a(Unknown Source)
at com.a.a.c.c.j(Unknown Source)
at com.a.a.c.c.b(Unknown Source)
at com.a.a.c.e.run(Unknown Source)
at java.lang.Thread.run(Thread.java:856)
然後我使用這個代碼進行解碼:
./retrace.sh -verbose mapping.txt stacktrace.txt > out.txt
這裏是輸出:
java.lang.ArrayIndexOutOfBoundsException: length=1; index=1
at com.my.package.MyFragment$10.void output(int,java.lang.String)(Unknown Source)
at com.stericson.RootTools.execution.Shell.void readOutput()(Unknown Source)
at com.stericson.RootTools.execution.Shell.void closeCustomShell()(Unknown Source)
com.stericson.RootTools.execution.Shell startShell(int)
void access$200(com.stericson.RootTools.execution.Shell)
at com.stericson.RootTools.execution.Shell$2.void run()(Unknown Source)
at java.lang.Thread.run(Thread.java:856)
那隻能說明發生錯誤時的片段名稱,但我也需要確切的線條和方法。
當模糊處理時您是否保留行號,因爲堆棧跟蹤已經沒有這些信息? http://stackoverflow.com/questions/10158849/android-proguard-return-line-number –
不,我沒有保留它。因此,將這些行(在您發送的鏈接中)添加到ProGuard中會將行號保存在堆棧跟蹤中? – Adam
是的。它當然也會縮小收縮率,因爲這些信息不會被二進制混淆/刪除。 –