检测应用崩溃的根源
本文档可帮助您确定应用的崩溃是源于您的代码还是亚马逊的代码。了解崩溃来源对于高效调试和决定何时联系亚马逊支持至关重要。
先决条件
开始之前:
- 阅读应用崩溃报告符号化,了解如何对汇总崩溃报告 (ACR) 文件进行符号化处理。
- 阅读利用ACR摘要进行崩溃调试,了解如何读取堆栈跟踪和堆栈帧。
@amzn/字符串,而不是@amazon-devices/。确定崩溃来源
请按照以下步骤确定崩溃来源。
步骤1: 崩溃报告符号化
通过Vega Studio运行ACR文件,以生成符号化摘要。有关说明,请参阅应用崩溃报告符号化。
步骤2: 确定应用类型
确定您的应用是仅使用JavaScript,还是混合使用JavaScript和原生代码。然后检查ACR摘要元数据中的CRASH_LANG字段,以确认崩溃语言。
步骤3: 在ACR摘要中查找堆栈跟踪
打开ACR摘要中的符号化堆栈跟踪部分。如果ACR文件中存在JavaScript跟踪,符号化工具会优先考虑这些跟踪。
步骤4: 对跟踪进行匹配以识别来源
利用以下模式来确定崩溃是源于您的代码还是亚马逊的代码。
对于JavaScript堆栈跟踪:
-
您的代码 — 指向您的应用源文件。不包含
@amazon-devices。/Users/developer_name/workspace/kepler/testapp/VegaProjectApp/src/App.tsx:47:crash -
亚马逊代码 — 路径中包含
@amazon-devices。node_modules/@amazon-devices/react-native-kepler/Libraries/...
对于原生堆栈跟踪:
-
您的代码 — 包含您的工作区目录并显示您的符号路径。
#0 0xa1a701bc in VegaProjectTMTurboModule::VegaProjectTM::voidFunc (this=0xa1d99838) at /Users/developer_name/workspace/vega/testapp/VegaProjectTM/kepler/turbo-modules/VegaProjectTM.cpp:33 -
亚马逊代码或操作系统代码 — 没有工作区目录引用。显示系统路径或
??。#0 0xb6e01b26 in ?? () from /private/var/folders/_p/.../lib/libc.so.6
步骤5: 根据崩溃源采取行动
如果崩溃源于您的代码,请使用ACR摘要查看完整的堆栈跟踪、系统信息和元数据。然后在源代码中找出问题并加以修复。
如果崩溃指向亚马逊代码,并且您看到以下任一情况,请联系亚马逊支持人员:
- 在仅采用JavaScript的应用中看到原生堆栈跟踪
- 堆栈跟踪不引用您的代码
- JavaScript堆栈跟踪中最上面的帧并不指向您的应用代码
- LMK崩溃反复发生,没有堆栈跟踪可供分析
联系支持人员时,请与其共享您设备中的原始ACR文件,而不是摘要报告。
相关主题
Last updated: 2026年2月18日

