Proguard Retrace不能处理stacktrace运行时信息,比如E / AndroidRuntime(10237):

我需要删除像E / AndroidRuntime(10237)我的proguard.trace文件行:为了回溯工作。 基本上我正在看日志文件,需要删除这条线或回溯不起作用。 我错过了什么,或者我需要为每个堆栈跟踪? 基本上它之前的信息出现在堆栈跟踪线的开始处

E/AndroidRuntime(10237): at com.test.abc(UnnownSource) :134 

这是整个堆栈跟踪:

 E/AndroidRuntime(10237): FATAL EXCEPTION: main E/AndroidRuntime(10237): java.lang.ArithmeticException: divide by zero E/AndroidRuntime(10237): at ub.a(SourceFile:180) E/AndroidRuntime(10237): at wp.getView(SourceFile:290) E/AndroidRuntime(10237): at android.app.ActivityThread.main(ActivityThread.java:4627) E/AndroidRuntime(10237): at java.lang.reflect.Method.invokeNative(Native Method) E/AndroidRuntime(10237): at java.lang.reflect.Method.invoke(Method.java:521) E/AndroidRuntime(10237): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858) E/AndroidRuntime(10237): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) E/AndroidRuntime(10237): at dalvik.system.NativeStart.main(Native Method) etc E/ ( 2623): Dumpstate > /data/log/dumpstate_app_error 

所以我正在运行./retrace.sh mapping.txt proguard.retrace其中的内容是上面的。 它不会回溯,除非我删除E / AndroidRuntime(10237):我错过了一些选项来回溯。 跟踪文件如何准备好以使其工作? 我不认为它的映射文件,因为它在我删除行的第一部分后工作。

Solutions Collecting From Web of "Proguard Retrace不能处理stacktrace运行时信息,比如E / AndroidRuntime(10237):"

Proguard希望每个“at”在一个单独的行上,并且只在其之前有空白。 如果它在at之前看到的只是空白区域,则不会将其混淆。

最近版本的ReTrace可以使用诸如“E / AndroidRuntime(10237):”之类的logcat前缀来parsing堆栈跟踪,所以它不应该再成为一个问题。

如果您有ReTrace无法parsing的堆栈跟踪格式,则始终可以使用-regex选项指定自己的正则expression式。

尝试recat 。 这是一个基于logcat-color的python脚本,完全是针对这种情况,即时的logcat反混淆处理(尽pipe在Windows上不起作用)。 主要思想是分别对日志(标记/消息)的每个部分进行反混淆处理。