Proguard Retrace不使用像E/AndroidRuntime(10237)这样的堆栈跟踪运行时信息:

Cod*_*oid 13 android proguard

我需要从我的proguard.trace文件中删除行,如E/AndroidRuntime(10237):以便回溯起作用.基本上我正在查看日志文件,需要删除此行或回溯不起作用.我错过了什么或者我是否需要为每个堆栈跟踪执行此操作?基本上它之前的信息出现在stacktrace行的开头就像

 E/AndroidRuntime(10237):  at com.test.a.b.c(UnnownSource) :134
Run Code Online (Sandbox Code Playgroud)

这是整个堆栈跟踪:

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
Run Code Online (Sandbox Code Playgroud)

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

Beh*_*ehr 37

Proguard希望每个"at"在一条单独的线上,并且只有前面有空格.如果它在at之前看到除了空格之外的任何东西,它就不会对它进行混淆.

  • 您可以使用以下命令删除这些行: sed -i '' -E "s/E\/AndroidRuntime[^at]+//g" your_trace_file (2认同)