Release 构建启用 minifyEnabled true 后,R8 会输出 build/outputs/mapping/release/mapping.txt,它就是混淆解析的字典:
- 逐行读取堆栈:例如
at a.b.c.a.a(Unknown Source:8)。 - 解析关键信息:取出混淆后的类名、方法名以及行号。
- 查询 mapping.txt:先按
a.b.c.a -> ...查找原始类名(如com.example.myapp.ui.MainActivity),再在该类条目下定位a对应的原始方法签名(如void updateUserProfile(...))。 - 恢复行号:mapping 文件包含行号映射信息,retrace 工具据此还原源文件行号,应对 R8 内联与重排。
- 替换输出:将原行替换为可读形式。
务必将每个发布版本对应的 mapping.txt 保存到服务端,否则线上崩溃将无法解析回真实代码位置。




