Unable to load script from assets index.android.bundle...node
Unable to load script from assets ‘index.android.bundle’react
這個錯誤是想說在加載script的資源的時候失敗了,沒有發現對應的packager server
android
形成這種問題的緣由挺多的,一部分是這個server真的沒有啓動。windows
這裏要說的是服務確實啓動了,但卻仍是找不到服務, 如何驗證服務確實啓動了呢?react-native
http://localhost:8081/index.android.bundle?platform=android&dev=true&hot=false&minify=false
, 能夠看到node的服務確實在加載了。接下來:若是你運行adb reverse tcp:8081 tcp:8081
解決了這個問題, 那麼恭喜你 不用往下看了。瀏覽器
好,我如今確實瀏覽器裏能夠訪問了而且運行了adb reverse
沒有用,那麼app
具體以下:tcp
- (in project directory) mkdir android/app/src/main/assets
- react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res
- react-native run-android
你們試了一下,發現真的不報錯了,就很開心😺,👍贊一下吧,可是❗️3d
本質上這個方案是將packager server
打包好的bundle拷貝到本地的assets目錄下,讓app去讀取本地assets的資源,至關於這個資源是靜態的了,而不是直接連接到packager server
上去的。code
這會形成:
Reload
或者Debug JS Remotely
命令後仍然報相同的錯。這個問題本質上app是連不上packager server
, 形成這個的緣由不少, 我碰到的狀況是localhost
被映射到了 ipv6的::1
上而不是 127.0.0.1
, 可使用ping localhost
查看一下.
若是能找到具體的緣由,能夠根據具體緣由解決,不然這裏有一個通用的解決方案:
啓動packager server
的命令是react-native start
,這個命令默認啓動在 localhost:8081
地址下,但他接受port
和host
的參數,這裏咱們能夠用一個新的端口和地址,例如:
第一步: react-native start --port 8082 --host 0.0.0.0
0.0.0.0
能夠配合本機的ipv4 的ip訪問成功第二步: 查看本地的ipv4地址
第三步: 打開開發者菜單> Dev Setting > Debug server host for device, 手動輸入 你的ipv4地址:8082
Reload 應該就能夠了