2017-06-20 96 views
5

我是新的反應原生。 我使用'react-native run-android'命令在Ubuntu上運行原生項目。並且我在模擬器上遇到了錯誤 「無法從資產中加載腳本'index.android.bundle'。確保您的軟件包已正確打包,或者您正在運行軟件包服務器。」無法從資產'index.android.bundle'加載腳本'

+0

歡迎SO!請參閱[如何提出一個好問題](https://stackoverflow.com/questions/ask)。 – rll

+0

你可以在https://stackoverflow.com/questions/44795384/unable-to-load-script-from-assets-index-android-bundle-make-sure-your-bundle/45409223#45409223 – honarkhah

回答

1

這似乎是最新版本的React Native(0.46)中的一個問題。使用以前的版本似乎可以解決問題react-native init name --version [email protected],並在運行react-native run-android時刪除錯誤。

編輯:它現在修復在版本0.46.1。

13

我也得到了這一點,我解決了這個項目目錄中使用以下命令:

$ mkdir android/app/src/main/assets 

$ 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

$ react-native run-android 
+1

找到你的答案不是爲我工作...你可以請幫忙 –

+0

我試着用React Native版本3.x和改變與index.js工作的index.android.js。 – Drake

1

幫我解決以下步驟的問題。

  • 如果不是(在項目目錄)的mkdir的Android /應用/ src目錄/主/資產

  • 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

  • react-native run-android

-1

對於這個錯誤:

無法從資產的index.android.bundle「

1)加載腳本檢查「資產」文件夾中的:

mkdir android\app\src\main\assets 

如果文件夾不可用,創建一個文件夾手動命名「資產」。並在終端中執行Curl命令。 2)。 curl命令:

curl "http://localhost:8081/index.android.bundle?platform=android" -o"android/app/src/main/assets/index.android.bundle" 

這將創造資產「index.android.bundle」文件夾自動和解決的問題。

3)然後:

react-native run-android 
6

使用 NPM版本4.3.0 反應天然-CLI版本2.01 0.49反應本地版本。5

在項目目錄,

  • 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

文件名已經從index.android.js改變index.js

0

我發現在線程提出瞭解決的https://github.com/facebook/react-native/issues/15388

它是手動設置調試服務器主機&端口設備設置在手機上的應用程序。

一步一步地在Android

彈出並運行CRNA在終端:

  1. create-react-native-app myApp
  2. yarn run eject(我使用默認選項 「定期陣營本地項目」 )
  3. react-native run-android

(現在該應用應當編譯並安裝在手機上)

在電話:

  • 運行應用程序(期望看到紅色的錯誤屏幕! - 點擊關閉,在左下角的按鈕)
  • 搖動手機,並挑選開發設置
  • 選擇調試服務器主機&端口設備並設置爲192.168.XX:8081(使它當然實際的LAN IP )
  • 手機上重新啓動應用程序,你應該在頂部看到綠色條「從192.168.xx的負荷:8081 ......」
  • 你也應該看到在地鐵捆紮機一些「捆綁index.js」行動(即當打開運行react-native run-android
  • 捆綁完成後,應用程序應該在Android設備上運行!
  • 實時刷新(當源文件改變)也適用 - 只需搖動手機和觸摸「啓用實時刷新」

    您可以從Android Studio中的項目,但你必須先啓動地鐵捆紮機使用CRNA項目根目錄中的命令react-native start

    0

    在我的情況下,問題是此行中的陣營活動文件:

    mReactInstanceManager = ReactInstanceManager.builder() 
    ... 
        .setUseDeveloperSupport(BuildConfig.DEBUG) 
    ... 
    

    BuildConfig.DEBUG必須設置爲true,而在我的情況下,它是假的

    0

    在我的情況(將React Native作爲新的Activity嵌入到現有的Android代碼庫中),問題在於Android Studio自動導入了錯誤的BuildConfig

    錯誤: import com.facebook.react.BuildConfig;

    右: import com.mywebdomain.myapp.BuildConfig;

    這將適用於任何地方你是住房代碼塊:

    mReactRootView = new ReactRootView(this); 
    mReactInstanceManager = ReactInstanceManager.builder() 
         .setApplication(getApplication()) 
         .setBundleAssetName("index.android.bundle") 
         .setJSMainModulePath("index") 
         .addPackage(new MainReactPackage()) 
         .setUseDeveloperSupport(BuildConfig.DEBUG) 
         .setInitialLifecycleState(LifecycleState.RESUMED) 
         .build();