我从崩溃报告系统中获得了一个堆栈跟踪,但它被混淆了,像这样:
... Failed resolution of: Lru/test/c/b/a; ...
我有一个映射文件。
如何使用mapping.txt来反混淆这个堆栈跟踪?
我从崩溃报告系统中获得了一个堆栈跟踪,但它被混淆了,像这样:
... Failed resolution of: Lru/test/c/b/a; ...
我有一个映射文件。
如何使用mapping.txt来反混淆这个堆栈跟踪?
从应用程序页面获取反混淆的崩溃堆栈跟踪
按照以下步骤将映射文件mapping.txt上传到您的应用Play商店页面:
完成后,若要查看反混淆的崩溃堆栈跟踪,请执行以下操作:
您可以查看此链接以了解更多详细信息。
反混淆一段堆栈跟踪
要自己转换代码,请使用retrace脚本(Windows上的retrace.bat;Mac/Linux上的retrace.sh)。 它位于~/Android/sdk/tools/proguard/bin/
目录中。该脚本采用mapping.txt文件和您的堆栈跟踪,生成一个新的可读取的堆栈跟踪。使用retrace工具的语法为:
retrace.bat|retrace.sh [-verbose] mapping.txt [<stacktrace_file>]
<project-path>app/build/outputs/mapping/flavor/release/mapping.txt
<your-computer-name>/AppData/Local/Android/SDK/tools/proguard/lib
然后您将得到 proguardgui.jar
在Mac上: /Users/<您的计算机名称>/Library/Android/sdk/tools/proguard/lib
通过终端使用
java -jar /Users/<your computer name>/Library/Android/sdk/tools/proguard/lib/proguardgui.jar
现在点击左侧菜单栏上的重新映射选项,即可打开如下窗口。从上述位置浏览您的 mapping.txt
文件,并将混淆后的堆栈跟踪错误日志添加到混淆后堆栈跟踪窗口中,然后单击 ReTrace
按钮获取解混淆的错误报告。
还有一种自动方式可以使用 Google Play Store 控制台实现。
另一种选项(适用于我)。
位置:C:\Program Files\Android\Android Studio\jre\bin(java.exe在此处)
添加来自Sdk\tools\proguard\lib的文件:
proguard.jar
retrace.jar
添加您的mapping.txt和stacktrace文件
创建一个批处理文件,其中包含以下行:
java -jar retrace.jar -verbose mapping.txt stacktrace
pause
运行它。
<sdk-root>
已经存在,但由于我没有用 ' ` ' 注释它,所以它没有显示出来,直到现在我才注意到。可能我有点晚了,但还是感谢你提醒我。 - Ricardo