as

Settings
Sign out
Notifications
Alexa
Amazonアプリストア
AWS
ドキュメント
Support
Contact Us
My Cases
開発
設計と開発
公開
リファレンス
サポート

アプリがクラッシュする原因を検出する方法

アプリがクラッシュする原因を検出する方法

このドキュメントは、アプリのクラッシュが自分のコードによるものか、Amazonのコードによるものかを判断するのに役立ちます。クラッシュの原因を理解することは、効率的なデバッグを行い、Amazonサポートへの問い合わせ時期を見極めるうえで不可欠です。

前提条件

クラッシュの原因を分析する前に、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スタックフレームのパスには、@amazon-devicesが含まれます。

例:

node_modules/@amazon-devices/react-native-kepler/Libraries/...

JavaScript/ネイティブ混在アプリ

JavaScript/ネイティブ混在アプリでは、ネイティブスタックトレースが表示されることがあります。

Vega Studioでは、次の2種類のスタックトレースのいずれかが表示されます。

  • JavaScriptスタックトレース(ACRファイルに存在する場合)

  • ネイティブスタックトレース(JavaScriptトレースが存在しない場合)

Vega Studioの自動シンボリケーターは、ACRファイルにJavaScriptトレースが存在する場合、JavaScriptトレースを優先して表示します。

ネイティブスタックトレースの例:

#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
[その他のスタックフレーム...]

ネイティブスタックトレースの原因を特定するには:

スタックフレームには開発者のworkspaceディレクトリが含まれ、シンボルパスが表示されます。

例:

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

Amazonスタックフレームにはworkspaceディレクトリの参照はなく、システムパスが表示されます。

例:

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

Amazonサポートへの問い合わせ

次のいずれかの問題が発生した場合は、Amazonサポートにお問い合わせください。

  • JavaScriptのみのアプリにネイティブスタックトレースが表示される
  • スタックトレースがコードを参照しない
  • JavaScriptスタックトレースで、一番上のフレームがアプリコードを指していない

Last updated: 2025年9月30日