起動時にJSバンドルエラーでアプリがクラッシュする
原因: システムのJSバンドルで競合が発生しています。アプリは、デバイスにもvlcm listの出力にも表示されません。「Requiring unknown module」または「Property __d doesn’t exist」というエラーが表示されます。
解決策:
-
デバイスログをキャプチャします。
-
以下のいずれかのコマンドを使用してアプリを起動します。
-
Kepler CLIを使用する場合:
-
package.jsonのNPMスクリプトを使用する場合:
-
Kepler CLIを使用する場合:
-
ログストリームでエラーパターンをモニタリングします。
「Requiring unknown module」エラーのサンプル:
「Property ‘__d’ doesn’t exist」エラーのサンプル:
-
これらのエラーが表示された場合は、JSバンドルシステムを無効にして、アプリを再ビルドします。
アプリは正常にビルドされるが、デバイスに表示されない
原因: アプリがバックグラウンドで実行されているか、UIのレンダリングに問題があります。 解決策:-
現在フォアグラウンドで動作しているアプリを確認します。
-
アプリがバックグラウンドにある場合は、フォアグラウンドに移行させます。
-
バックグラウンドとフォアグラウンドを切り替えて更新します。
アプリをフォアグラウンドにしても表示されない
原因: Metroサーバーで複数のアプリが実行されているか、UIコードにエラーがあります。Metroサーバーを使用できるのは一度に1つのアプリのみです。 解決策: 実行中の複数のアプリをチェックする:- Metroサーバーが実行されているターミナルで、Ctrl+Cキーを押してMetroサーバーを終了します。
-
アプリを停止します。
-
アプリを再起動します。
- Metroサーバーの出力をモニタリングしてエラーを調べます。
- 互換性のないReact Nativeパッケージが原因で発生する問題を探します。
- Metroサーバーは、エラーが発生するに従ってエラーを表示します。
- コード内でエラーを修正します。
- Metroサーバーは、変更のたびにバンドルを自動的に再ビルドします。
- エラーを修正すると、Metroサーバーによってバンドルが作成されます。
Metroサーバーが起動に失敗する、または頻繁にクラッシュする
原因: ポートが競合しているか、キャッシュが壊れているか、システムリソースに制約があります。 解決策:-
Metroキャッシュを消去します。
-
ポートが競合していないかどうかを確認し、別のポートを使用します。
-
詳細ログを有効にしてMetroサーバーを再起動します。
- 問題が解決しない場合は、開発コンピューターを再起動してシステムリソースをクリアします。

