生产环境 Release 包为了保护代码和减小体积会经过 ProGuard/R8 混淆或 C++ strip,控制台看到的堆栈会变成 com.shop.a.b.c.d.a(Proguard:58) 或 mangled 的 C++ 符号,无法直接定位源代码,因此必须做符号化:
- Java/Kotlin 符号化:构建 Release 后
mapping.txt位于app/build/outputs/mapping/release/mapping.txt。在云监控 2.0 控制台 → 用户体验监控(RUM)→ 应用 → 应用设置 → 文件管理 → 符号表文件 → 上传即可。 - Native 符号化:构建产物中
app/build/intermediates/cxx/release/xxx/obj/<abi>/xxx-native.so保留了调试符号,需要按 ABI 分别上传(arm64-v8a、armeabi-v7a、x86_64)。
验证方式:进入崩溃详情 → 异常明细 → 解析堆栈 → 选择对应的符号表文件(Java 用 .txt,Native 用 .so),点击确定后即可看到还原后的类名、方法名、源文件与行号。这样才能从「谜团一样的混淆栈」跳跃到「精确到具体一行代码」。




