as

Settings
Sign out
Notifications
Alexa
亚马逊应用商店
AWS
文档
Support
Contact Us
My Cases
新手入门
设计和开发
应用发布
参考
支持

检测应用崩溃的根源

检测应用崩溃的根源

本文档可帮助您确定应用的崩溃是源于您的代码还是亚马逊的代码。了解崩溃的根源对于高效调试和决定何时联系亚马逊支持至关重要。

先决条件

在分析崩溃根源之前,请阅读使用Vega Studio调试应用崩溃,了解如何从设备提取和符号化聚合崩溃报告 (ACR) 文件。

堆栈跟踪和堆栈帧

“堆栈跟踪”是导致崩溃的函数序列,而”堆栈帧”是构成堆栈跟踪的各个函数调用。

原生堆栈帧

对于原生崩溃,堆栈帧包括帧编号、函数地址以及与该地址对应的库名称。

如果调试符号可用,则帧还可以显示函数名称、函数所在的文件以及地址对应的函数中的行号。

原生堆栈帧示例:

#0  0xa1a701bc in VegaProjectTMTurboModule::VegaProjectTM::voidFunc (this=0xa1d99838) at /Users/developer_name/workspace/kepler/testapp/VegaProjectTM/kepler/turbo-modules/VegaProjectTM.cpp:33

JavaScript堆栈帧

对于JavaScript,堆栈帧包括函数名称、函数所在的文件和行号。

JavaScript堆栈帧示例:

at onPress (node_modules/@amazon-devices/react-native-kepler/Libraries/Pressability/Pressability.js:587:18)

应用的类型及其堆栈跟踪

不同类型的应用在崩溃时会产生不同的堆栈跟踪。了解您正在使用哪种类型的应用有助于您正确分析崩溃数据。

仅采用JavaScript的应用

在仅采用JavaScript的应用中,您应该只看到像这样的JavaScript堆栈跟踪:

TypeError: Cannot read property 'crash' of undefined
    at onPress (node_modules/@amazon-devices/react-native-kepler/Libraries/Pressability/Pressability.js:587:18)
    [其他堆栈帧...]

要确定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/...

混合式JavaScript和原生应用

在混合式JavaScript和原生应用中,您可能会看到原生堆栈跟踪。

Vega Studio显示了两种类型的堆栈跟踪之一:

  • JavaScript堆栈跟踪(如果在ACR文件中可用)

  • 原生堆栈跟踪(如果不存在JavaScript跟踪)

当JavaScript跟踪存在于ACR文件中时,Vega Studio中的自动符号化器会优先显示这些跟踪。

原生堆栈跟踪示例:

#0 0xb6e01b26 in ?? () from /private/var/folders/_p/.../lib/libc.so.6 
#1 0xb6e8d5d0 in epoll_wait () from /private/var/folders/_p/.../lib/libc.so.6
[其他堆栈帧...]

要识别原生堆栈跟踪中的来源,请执行以下操作:

您的堆栈帧包含您的工作区目录并显示您的符号路径。

示例:

#0 0xa1a701bc in VegaProjectTMTurboModule::VegaProjectTM::voidFunc (this=0xa1d99838) at /Users/developer_name/workspace/******/testapp/VegaProjectTM/kepler/turbo-modules/VegaProjectTM.cpp:33

亚马逊堆栈帧没有工作区目录引用,并显示系统路径。

示例:

#0 0xb6e01b26 in ?? () from /private/var/folders/_p/.../lib/libc.so.6

联系亚马逊支持

当您看到以下任何问题时,请联系亚马逊支持

  • 您在仅采用JavaScript的应用中看到原生堆栈跟踪
  • 堆栈跟踪不引用您的代码
  • 在JavaScript堆栈跟踪中,最上面的帧并不指向您的应用代码

Last updated: 2025年9月30日