アプリがクラッシュする原因を検出する方法
このドキュメントは、アプリのクラッシュが自分のコードによるものか、Amazonのコードによるものかを判断するのに役立ちます。クラッシュの発生元を理解することは、効率的なデバッグを行い、どのような場合にAmazonサポートに問い合わせるかを判断するために重要です。
前提条件
始める前に、以下を確認してください。
- アプリのクラッシュレポートをシンボリケートする方法を読んで、集約クラッシュレポート(ACR)のシンボリケート方法を学んでください。
- ACRの概要を使用してクラッシュをデバッグする方法を読んで、スタックトレースとスタックフレームの解読方法を理解してください。
@amazon-devices/ではなく@amzn/という文字列が含まれることがあります。クラッシュの発生元の特定
クラッシュの発生元を特定するには、次の手順に従います。
手順1: クラッシュレポートをシンボリケートする
Vega StudioでACRファイルを実行して、シンボリケートされた概要を生成します。手順については、アプリのクラッシュレポートをシンボリケートする方法を参照してください。
手順2: アプリタイプを特定する
アプリがJavaScriptのみで作成されているか、JavaScriptとネイティブコードの混合かを特定します。次に、ACRの概要のメタデータセクションでCRASH_LANGフィールドを調べて、クラッシュした言語を確認します。
手順3: ACRの概要でスタックトレースを確認する
ACRの概要で、Symbolicated stacktracesセクションを開きます。ACRファイルにJavaScriptトレースが存在する場合、シンボリケーターはそれらを優先的に表示します。
手順4: トレースを照合して発生元を特定する
以下のパターンに従って、クラッシュの発生元がアプリのコードかAmazonのコードかを判断します。
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/...
ネイティブスタックトレースの場合:
-
アプリのコード - スタックフレームに開発者のワークスペースディレクトリが含まれ、シンボルパスが表示されます。
#0 0xa1a701bc in VegaProjectTMTurboModule::VegaProjectTM::voidFunc (this=0xa1d99838) at /Users/developer_name/workspace/vega/testapp/VegaProjectTM/kepler/turbo-modules/VegaProjectTM.cpp:33 -
AmazonまたはOSのコード - ワークスペースディレクトリへの参照は含まれません。システムパスまたは
??が表示されます。#0 0xb6e01b26 in ?? () from /private/var/folders/_p/.../lib/libc.so.6
手順5: クラッシュの発生元に基づいて対処を行う
クラッシュの発生元がアプリのコードである場合は、ACRの概要を使用して、スタックトレース全体、システム情報、メタデータを確認します。次に、アプリのソースコードで問題を特定して修正します。
クラッシュがAmazonのコードを指していて、次のいずれかに該当する場合は、Amazonサポートにお問い合わせください。
- JavaScriptのみのアプリでネイティブのスタックトレースが表示される。
- スタックトレースがアプリのコードを参照していない。
- JavaScriptスタックトレースの最上位のフレームがアプリのコードを指していない。
- LMKクラッシュが繰り返し発生し、分析できるスタックトレースがない。
サポートに問い合わせるときは、概要レポートではなく、デバイスにある元のACRファイルを共有してください。
関連トピック
- アプリのクラッシュレポートをシンボリケートする方法
- ACRの概要を使用してクラッシュをデバッグする方法
- Vega Studioを使用して1行ずつデバッグを実行する方法
- 開発者メニューのツールを使用してアプリをデバッグする方法
Last updated: 2026年2月18日

