我一直在使用 eclipse 内置的 proguard 工具来混淆代码,效果很好。但是,当我尝试重新跟踪混淆代码的堆栈跟踪时,重新跟踪不会输出未混淆的堆栈跟踪。
我仔细检查了mapping.txt,以确保我使用的是正确的。
这是我的堆栈跟踪
ERROR/AndroidRuntime(19398):
FATAL EXCEPTION: Thread-35
ERROR/AndroidRuntime(19398): java.lang.NullPointerException
ERROR/AndroidRuntime(19398): at android.graphics.Canvas.throwIfRecycled(Canvas.java:954)
ERROR/AndroidRuntime(19398): at android.graphics.Canvas.drawBitmap(Canvas.java:980)
ERROR/AndroidRuntime(19398): at com.excelectronic.b.aa.a(ProGuard:535)
ERROR/AndroidRuntime(19398): at com.excelectronic.g.f.a(ProGuard:220)
ERROR/AndroidRuntime(19398): at com.excelectronic.game.GameView.a(ProGuard:198)
ERROR/AndroidRuntime(19398): at com.excelectronic.game.GameView.onDraw(ProGuard:98)
ERROR/AndroidRuntime(19398): at com.excelectronic.game.ac.run(ProGuard:121)
并使用命令
retrace.bat -verbose mapping.txt obfuscated_trace.txt
默认情况下,ProGuard 的 ReTrace 工具期望堆栈跟踪具有良好的格式,就像 java 打印出来的那样。这意味着它期望在适当的位置换行,并且没有像“ERROR/AndroidRuntime(19398)”这样的前缀。
或者,您可以修改 ReTrace 用于解析堆栈跟踪的正则表达式。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)