You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Release构建混淆后崩溃日志如何定位至实际文件行号

解决Android Release混淆后崩溃的映射文件定位与反混淆问题

一、定位混淆映射文件(mapping.txt)

  • 默认路径:开启minifyEnabled true后,R8/ProGuard生成的mapping.txt会存放在模块的build/outputs/mapping/release/目录下。例如App模块的完整路径为app/build/outputs/mapping/release/mapping.txt
  • 自定义路径检查:若项目修改过混淆输出配置,可查看模块级build.gradle文件中的mappingFile相关配置,确认实际存储位置

二、反混淆崩溃日志

  • Android Studio内置工具:打开Android Studio,依次点击Tools > App Links Assistant > Open Mapping File,选择找到的mapping.txt,粘贴混淆后的崩溃日志J2.c.l(SourceFile:46)即可得到对应的原始类、方法及行号
  • 命令行工具:在Android SDK的tools/proguard/bin/目录下,使用retrace.sh(Mac/Linux)或retrace.bat(Windows)执行命令:
    retrace.sh mapping.txt 你的崩溃日志文件.txt
    
    直接输出反混淆后的结果

三、关键注意事项

  • 每次Release构建都会生成新的mapping.txt,必须和对应版本的APK归档保存,否则无法反混淆旧版本的崩溃日志
  • 若同时开启shrinkResources true,需额外关注资源混淆映射文件resources.txt,但本次问题为代码混淆,重点处理mapping.txt

内容的提问来源于stack exchange,提问作者Amit Yadav

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 07:37:04