目的の概要
MetroのBundle Locationを毎回設定し直さなければならなくなってしまったので、自動的にlocalhost:8081
を読むようにしたい
詳細
- ReactNativeのアプリをAndroid Studioのエミュレータ(AVD)でDebug Buildする
- Metroが見つからないとエラーで怒られる(Metroは起動しているにもかかわらず)
- Debugメニュー(
Ctrl + M
)を開いて、「Change Bundle Location」をlocalhost:8081
(または127.0.0.1:8081
)とすると正常につながる
⇒毎回、上記の3を行う必要があるため、プロジェクト内であらかじめ定義できないか?
(そもそも、前はこんな事起きなかったので、その原因があればそれを潰すだけで良いです)
3の詳細
エラーメッセージ
Unable to load script.Make sure you're either running a Metro server (run 'react-native start') or that your bundle 'index.android.bundle' is packaged correctly for release.
AVD側に出ます
補足情報(FW/ツールのバージョンなど)
- そもそも前はこんな事起きなかった(勝手に
localhost:8081
を見てくれた) - どのプロジェクトでも(前はこの問題が発生しなかったプロジェクトでも)、「Metroが見つからない」という旨のエラーを吐く
AVDのスペック
- タイプ:スマートフォン
- 端末:Pixel API 27
- システムイメージ:Oreo
- Androidバージョン:Android 8.1
- CPU/ABI:x86
バージョン
- react-native-cli: 2.0.1
- react: 16.13.1
- react-native: 0.63.1
- metro-react-native-babel-preset: 0.60.0
Bundle Locationがリセットされないパターン(Bundle Locationの再設定が不要)
- Bundle Locationを設定 ⇒ アプリをタスクキル ⇒ Metroを落とす ⇒
react-native run-android
- Bundle Locationを設定 ⇒ アプリをタスクキル ⇒ Metroを落とす ⇒ AVDを落として再起動 ⇒
react-native run-android
Bundle Locationがリセットされるパターン(Bundle Locationの再設定が必要)
- Bundle Locationを設定 ⇒ アプリをタスクキル ⇒ Metroを落とす ⇒ AVDから対象アプリをアンインストール ⇒
react-native run-android
アンインストールすると必ず再設定を求められるようです。
あなたの回答
tips
プレビュー