デバッグランタイムに関する問題
このページでは、アプリが正常にビルドされてもランタイムの実行時に失敗する場合に、よくある問題を解決するために役立つ情報を提供します。解決策がここで見つからない場合、開発者フォーラムに問題を投稿すれば追加のサポートを受けることができます。
Metroサーバーが起動に失敗する、または頻繁にクラッシュする
原因: ポートが競合しているか、キャッシュが壊れているか、システムリソースに制約があります。
解決策:
- Metroキャッシュを消去します。
npx react-native start --reset-cache - ポートが競合していないかどうかを確認し、別のポートを使用します。
npx react-native start --port 8082 - 詳細ログを有効にしてMetroサーバーを再起動します。
npx react-native start --verbose - 問題が解決しない場合は、開発コンピューターを再起動してシステムリソースをクリアします。
アプリは正常にビルドされるが、デバイスに表示されない
原因: アプリがバックグラウンドで実行されているか、UIのレンダリングに問題があります。
解決策:
-
現在フォアグラウンドで動作しているアプリを確認します。
vlcm list - アプリがバックグラウンドにある場合は、フォアグラウンドに移行させます。
vlcm trigger-app foreground -i <インスタンスID> - バックグラウンドとフォアグラウンドを切り替えて更新します。
vlcm trigger-app background -i <インスタンスID> vlcm trigger-app foreground -i <インスタンスID>
フォアグラウンドにしてもアプリが表示されない
原因: Metroサーバーで複数のアプリが実行されているか、UIコードにエラーがあります。Metroサーバーを使用できるのは一度に1つのアプリのみです。
解決策:
実行中の複数のアプリをチェックする:
-
Metroサーバーが実行されているターミナルで、Ctrl+Cキーを押してMetroサーバーを終了します。
- アプリを停止します。
vega device terminate-app - アプリを再起動します。
vega device launch-app
UIコードのエラーを確認する:
-
Metroサーバーの出力に、互換性のないReact Nativeパッケージが原因で発生したエラーがないか監視します。
-
コード内のエラーを修正します。Metroサーバーは、変更のたびにバンドルを自動的に再ビルドします。
起動時にJavaScriptバンドルエラーでアプリがクラッシュする
原因: システムのJavaScriptバンドルが原因で競合が発生しています。アプリは、デバイスにもvlcm listの出力にも表示されません。ログには「Requiring unknown module」または「Property __d doesn't exist」というエラーが表示されます。
解決策:
-
デバイスログをキャプチャします。
vega device start-log-stream --device <デバイス名> -
以下のいずれかのコマンドを使用してアプリを起動します。
- Vega CLIを使用する場合:
react-native run-app - package.jsonのNPMスクリプトを使用する場合:
npm run start:vega
- Vega CLIを使用する場合:
-
ログストリームにエラーパターンがないか監視します。
以下は、この問題に関連する代表的なエラーの例です。
「Requiring unknown module」エラー:
Uncaught Error: Requiring unknown module "2827612701754778". If you are sure the module exists, try restarting Metro.「Property '__d' doesn't exist」エラー:
E Volta:[VegaScript-Native] Exception occurred in MessageQueue::runAsync: [Property '__d' doesn't exist ReferenceError: Property '__d' doesn't exist at global -
実行中のターミナルでCtrl+Cを押してMetroサーバーを停止します。
- Metroキャッシュを消去して再起動します。
npx react-native start --reset-cache -
アプリを再ビルドして再起動します。
エラーが続く場合は、競合するシステムバンドルがないか確認してください。詳細については、システムバンドルの問題により、アプリがクラッシュするか、空白の画面が表示されるを参照してください。
システムバンドルの問題により、アプリがクラッシュするか、空白の画面が表示される
原因: システムバンドルがないか、正しく設定されていません。デフォルトのバンドル分割動作をオーバーライドするレガシーフラグがアプリに設定されている可能性もあります。システムバンドルがない場合、通常、デバイスのOSバージョンがアプリのビルドに使用されたSDKバージョンと一致していません。
解決策:
-
アプリのルート(メインの
package.jsonがある場所)で次のコマンドを実行して、キャッシュを消去し、依存関係を更新します。手順 npm Yarn PNPM キャッシュを消去する npm cache clean --forceyarn cache clean --allpnpm cache deleteMetroキャッシュをリセットする npm start -- --reset-cacheyarn start -- --reset-cachepnpm start -- --reset-cacheビルドアーティファクトを消去する npm run cleanyarn cleanpnpm cleandependenciesの更新 npm updateyarn upgradepnpm update -
次のコマンドを実行して、アプリがシステムバンドルを使用しているかどうかを確認します。
vega exec vpt dump {path/to/vpkg} assets/raw/keplerscript-app-config.json > keplerscript-app-config.json -
keplerscript-app-config.jsonファイルを開きます。 -
"systemBundles: {"セクションを探します。 -
プロジェクトからレガシーのバンドル分割フラグを削除します。
以前にバンドル分割をオプトアウトした場合でも、システムバンドルの正常な動作を妨げるフラグがプロジェクトに含まれたままになっている可能性があります。これらのフラグは不要です。SDK v0.20以降では、デフォルトでバンドル分割が有効になっています。
package.jsonで、"kepler"セクションからuseSystemJsBundlesを削除します。- ビルドスクリプトで、ビルドコマンドから
--split-bundle falseと--use-system-js-bundlesを削除します。
-
問題が解決しない場合は、デバイスのOSバージョンがアプリのビルドに使用されたSDKバージョンと同じであることを確認してください。同じでない場合は、SDKを更新して再ビルドしてください。ビルド手順については、Vega Studioを使用したアプリのビルドを参照してください。
ビルド後のアプリにシステムバンドルのエントリが含まれていない
原因: アプリがデバッグモードでビルドされています。デバッグビルドでは分割バンドルは作成されないため、システムバンドルのエントリはリリースビルドにしか含まれません。
解決策: デバッグバージョンではなく、リリースバージョンのアプリをビルドして送信します。
関連トピック
- アプリの実行
- Vega Studioを使用したアプリのビルド
- Vega Studioでのビルドに関する問題の修正
- アプリがクラッシュする原因を検出する方法
- ファイル、クラッシュレポート、ログの管理
- デバッグに関する問題の修正
- 高速リフレッシュに関する問題の解決
- 問題のトラブルシューティング
Last updated: 2026年3月9日

