Metroサーバーが起動に失敗する、または頻繁にクラッシュする
原因: ポートが競合しているか、キャッシュが壊れているか、システムリソースに制約があります。 解決策:-
Metroキャッシュを消去します。
-
ポートが競合していないかどうかを確認し、別のポートを使用します。
-
詳細ログを有効にしてMetroサーバーを再起動します。
- 問題が解決しない場合は、開発コンピューターを再起動してシステムリソースをクリアします。
アプリは正常にビルドされるが、デバイスに表示されない
原因: アプリがバックグラウンドで実行されているか、UIのレンダリングに問題があります。 解決策:-
現在フォアグラウンドで動作しているアプリを確認します。
-
アプリがバックグラウンドにある場合は、フォアグラウンドに移行させます。
-
バックグラウンドとフォアグラウンドを切り替えて更新します。
フォアグラウンドにしてもアプリが表示されない
原因: Metroサーバーで複数のアプリが実行されているか、UIコードにエラーがあります。Metroサーバーを使用できるのは一度に1つのアプリのみです。 解決策: 実行中の複数のアプリをチェックする:- Metroサーバーが実行されているターミナルで、Ctrl+Cキーを押してMetroサーバーを終了します。
-
アプリを停止します。
-
アプリを再起動します。
- Metroサーバーの出力に、互換性のないReact Nativeパッケージが原因で発生したエラーがないか監視します。
- コード内のエラーを修正します。Metroサーバーは、変更のたびにバンドルを自動的に再ビルドします。
起動時にJavaScriptバンドルエラーでアプリがクラッシュする
原因: システムのJavaScriptバンドルが原因で競合が発生しています。アプリは、デバイスにもvlcm listの出力にも表示されません。ログには「Requiring unknown module」または「Property __d doesn’t exist」というエラーが表示されます。
解決策:
-
デバイスログをキャプチャします。
-
以下のいずれかのコマンドを使用してアプリを起動します。
-
Vega CLIを使用する場合:
-
package.jsonのNPMスクリプトを使用する場合:
-
Vega CLIを使用する場合:
-
ログストリームにエラーパターンがないか監視します。
以下は、この問題に関連する代表的なエラーの例です。
「Requiring unknown module」エラー:
「Property ‘__d’ doesn’t exist」エラー:
- 実行中のターミナルでCtrl+Cを押してMetroサーバーを停止します。
-
Metroキャッシュを消去して再起動します。
- アプリを再ビルドして再起動します。 エラーが解決しない場合は、競合するシステムバンドルがないか確認してください。詳細については、システムバンドルの問題により、アプリがクラッシュするか、空白の画面が表示されるを参照してください。
システムバンドルの問題により、アプリがクラッシュするか、空白の画面が表示される
原因: システムバンドルがないか、正しく設定されていません。デフォルトのバンドル分割動作をオーバーライドするレガシーフラグがアプリに設定されている可能性もあります。システムバンドルがない場合、通常、デバイスのOSバージョンがアプリのビルドに使用されたSDKバージョンと一致していません。 解決策:-
アプリのルート(メインの
package.jsonがある場所)で次のコマンドを実行して、キャッシュを消去し、依存関係を更新します。 -
次のコマンドを実行して、アプリがシステムバンドルを使用しているかどうかを確認します。
-
keplerscript-app-config.jsonファイルを開きます。 - “systemBundles: {“セクションを探します。
-
プロジェクトからレガシーのバンドル分割フラグを削除します。
以前にバンドル分割をオプトアウトした場合でも、システムバンドルの正常な動作を妨げるフラグがプロジェクトに含まれたままになっている可能性があります。これらのフラグは不要です。SDK v0.20以降では、デフォルトでバンドル分割が有効になっています。
package.jsonで、"kepler"セクションからuseSystemJsBundlesを削除します。- ビルドスクリプトで、ビルドコマンドから
--split-bundle falseと--use-system-js-bundlesを削除します。
- デバイスとSDKのバージョンを合わせます。 問題が解決しない場合は、デバイスのOSバージョンがアプリのビルドに使用されたSDKバージョンと同じであることを確認してください。同じでない場合は、SDKを更新して再ビルドしてください。ビルド手順については、Vega Studioを使用したアプリのビルドを参照してください。
デバイスが最新のOSバージョンを実行していないためアプリが失敗する
原因: デバイスは最新のテレビ放送(OTA)アップデートを受け取っていないため、そのOSのバージョンはアプリの作成に使用されたSDKバージョンよりも古くなっています。OSが古いデバイスでは、アプリが正常に作成されている場合でも、システムバンドルの欠落、起動の失敗、または予期しない実行時の動作が起きる可能性があります。 解決策:-
デバイスの現在のOSバージョンを確認し、アプリのビルドに使用されたSDKバージョンと比較します。
- デバイスがインターネットに接続されていることを確認し、進行中のアップデートがあれば完了させます。デバイスが自動でOTAアップデートをチェックします。アップデートが完了するまでデバイスの電源を切らず、再起動しないでください。詳細については、Vega仮想デバイスまたはFire TVデバイスでのアプリの実行を参照してください。
- デバイスのOSが更新されない場合は、[設定] > [My Fire TV] > [バージョン情報] > [アップデートをチェック] でアップデートをチェックします。それでもアップデートを受信できない場合は、デバイスのネットワーク接続を確認し、強制的に手動でアップデートします。Fire TV StickがOTAアップデートを受信しないを参照してください。
-
デバイスが最新のOSになったら、アプリを再ビルドし、再デプロイします。
ビルドとデプロイの詳細な手順については、Vega Studioを使用したアプリのビルドとアプリの実行を参照してください。それでもOSとSDKのバージョンが一致しない場合は、SDKを更新して再ビルドします。
ビルド後のアプリにシステムバンドルのエントリが含まれていない
原因: アプリがデバッグモードでビルドされています。デバッグビルドでは分割バンドルは作成されないため、システムバンドルのエントリはリリースビルドにしか含まれません。 解決策: デバッグバージョンではなく、リリースバージョンのアプリをビルドして送信します。関連トピック
- アプリの実行
- Vega Studioを使用したアプリのビルド
- Vega Studioでのビルドに関する問題の修正
- アプリがクラッシュする原因を検出する方法
- ファイル、クラッシュレポート、ログの管理
- デバッグに関する問題の修正
- 高速リフレッシュに関する問題の解決
- 問題のトラブルシューティング

