1. 程式人生 > >項目初始化以後出現:Unable to load script from assets 'index.android.bundle

項目初始化以後出現:Unable to load script from assets 'index.android.bundle

運行 rsquo users 新建 detail nts log ati use

Mac中真機測試React Native project時出現Unable to load script from assets ‘index.android.bundle‘

2018年01月21日 01:59:38 neuHenry 閱讀數:1186 版權聲明:本文為博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/u010347226/article/details/79117940

剛接觸學習React Native,在進行真機調試時,報錯出現Unable to load script from assets ‘index.android.bundle’. Make sure your bundle is packaged correctly or you’re running a packager server。這裏對此做一下記錄;

筆者對此也查了相關的解決方法,但是並沒有解決我所遇到的問題,解決方法如下:

第一步:首先切到我們工程的根目錄下,然後在android/app/src/main目錄下新建一個assets文件夾,可以在終端中執行以下命令建立:

mkdir android/app/src/main/assets
  • 1

當然也可以在Android Studio中手動建立;

第二步:同樣需要在我們工程的根目錄下,執行以下命令:

react-native bundle --platform android --dev false --entry-file index.android.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res
  • 1

第三步:重新運行以下命令即可:

react-native run-android
  • 1

然而,這樣並沒有解決上述問題,依然報錯,且此時會出現另外一個問題:

Cannot find entry file index.android.js in any of the roots: ["/Users/******/ReactNativeProjects/FirstReactApp"]
  • 1

這時我們去assets文件夾下才發現,第二步的命令並沒有在assets文件夾中生成我們所需的文件,裏面沒有任何文件生成,此時筆者繼續查找,在Stack Overflow中找到了解決方法,用下面的命令替換剛才第二步的命令:

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
  • 1

原來是index.android.js已經改成index.js,難怪找不到呢!!!
使用上述命令後,此時在assets文件夾下會多出index.android.bundle和index.android.bundle.meta兩個文件;

再重新運行工程,終於出現運行成功的界面啦!
技術分享圖片

小結:遇到問題時要敢於去解決,多查找問題的原因,這裏index.android.bundle是用來調用系統原生控件的js腳本,每次當你改變了 index.js時,需要使用上面的命令及時地更新index.android.bundle,然後打包才可以把新的index.js應用上,所以當沒有index.android.bundle文件時,React Native是無法運行的;

項目初始化以後出現:Unable to load script from assets 'index.android.bundle