9

I'm new in react-native. I have run react native project on Ubuntu by using 'react-native run-android' command. And I got the error on emulator "Unable to load script from assets 'index.android.bundle'.Make sure your bundle is packaged correctly or you are running a package server."

YB Tester
  • 91
  • 1
  • 1
  • 3
  • Welcome to SO! Please see [How to Ask a Good Question](https://stackoverflow.com/questions/ask). – rll Jun 20 '17 at 09:10
  • you can find your answer on https://stackoverflow.com/questions/44795384/unable-to-load-script-from-assets-index-android-bundle-make-sure-your-bundle/45409223#45409223 – Honarkhah Oct 11 '17 at 05:52
  • make sure ADB is install and accessable in your path – Harry Mar 20 '19 at 11:29
  • I was facing the same issue and it solves: https://queception.com/question.php?question=10 – Stack Overflow Apr 18 '19 at 11:17
  • duplicate of https://stackoverflow.com/questions/59051365/index-android-bundle-not-updating-when-creating-release-build/74854019#74854019 – Moritz Dec 21 '22 at 06:57

13 Answers13

23

I also got this and I resolved this using following commands in your project directory:

$ 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
Cristian
  • 51
  • 2
  • 9
Nilesh Modak
  • 361
  • 2
  • 7
  • 2
    I tried with React Native version 3.x and changing index.android.js with index.js works. – Drake Nov 28 '17 at 09:00
  • which react-native version you talk about. you made it up yourself? – stackunderflow Aug 26 '18 at 11:30
  • i have a same issue and this solution does not work for me. it seems that after i added babel-plugin-module-resolver to my project this happens. (if it helps i have react-native-navigation from wix company in my project) – Emad Bayat Oct 10 '18 at 12:40
15

Using npm version 4.3.0 react-native-cli version 2.01 react-native version 0.49.5

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

The file name has changed from index.android.js to index.js

Darshan Pania
  • 1,374
  • 13
  • 20
  • 1
    This really helped me with react native 0.70.6 was crashing in release mode. spent hours till find this. – A.A. Jan 05 '23 at 21:22
10

In my case (embedding React Native as a new Activity into an existing Android Code Base), the problem was Android Studio had auto-imported the wrong BuildConfig.

Wrong: import com.facebook.react.BuildConfig;

Right: import com.mywebdomain.myapp.BuildConfig;

This would apply to the wherever you are housing this block of code:

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();
grailian
  • 720
  • 1
  • 8
  • 9
3

For this error :

unable to load script from assets 'index.android.bundle'

1) Check for "assets" folder at :

mkdir android\app\src\main\assets

If the folder is not available, create a folder with name "assets" manually. and execute the Curl command in terminal.

2). Curl command:

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

It will create the "index.android.bundle" file in assets folder automatically and resolved the issue.

3) Then:

 react-native run-android
Vega
  • 27,856
  • 27
  • 95
  • 103
2

This helped me resolve the problem in following steps.

  • If not than (in project directory) 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

Bhavan Patel
  • 1,755
  • 1
  • 16
  • 30
2

Ubuntu

first time, I created new app with react-native init project-name. I got the same error. so i do the following steps to resolve this in my case.

  1. Firstly run sudo chown user-name-of-pc /dev/kvm in my case.
  2. While debugging from your Android phone, select Use USB to Transfer photos (PTP).
  3. Create Folder assets in 'project-name/android/app/src/main'.
  4. make sure index.js be avaiable into your project root directory and then run below command from console after cd project-name directory.

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

or for index.android.js then

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. run command ./studio.sh in android-studio/bin directory. It will opens up Android Studio.
  2. run command react-native run-android.
Harat
  • 1,340
  • 1
  • 17
  • 20
1

It seems to be a problem in the newest version of React Native (0.46). Using the previous version seems to solve the problem react-native init name --version react-native@0.45.1 and removes the error when running react-native run-android.

Edit: It is now fixed in version 0.46.1.

1

In my case the problem was in this row in the React Activity file:

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

BuildConfig.DEBUG must be set to true, while in my case it was false

requirunt
  • 55
  • 1
  • 5
1

For Windows user only:

  1. Copy the path of adb location and set into PATH in your system variable,
  2. Open project structure and delete node module folder.
  3. Edit your project package.JSON file change react-native version "react-native": "0.55.2", and babel "babel-preset-react-native": "4", after that run npm install
  4. Restart cmd and js server and run your react native project by react-native run-android
mahendra
  • 87
  • 4
1

I was stuck in the same problem for hours and what solved my issue is this : Create "assets" folder in main directory of project as well as in "newreactproject\android\app\src\main". Then put this script in package.json "android-android": "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"
like:

"name": "newreactproject",
  "version": "0.0.1",
  "private": true,
  "scripts": {
    "android-android": "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",
    "start": "node node_modules/react-native/local-cli/cli.js start",
    "test": "jest"
  }
Kylo Ren
  • 486
  • 6
  • 24
0

I discovered a solution suggested in the thread at https://github.com/facebook/react-native/issues/15388

It is to manually set the Debug server host & port for device setting for the app on the phone.

Step by Step to eject and run a CRNA on Android

In terminal:

  1. create-react-native-app myApp
  2. cd myApp
  3. yarn run eject (I used default options "regular React Native project")
  4. react-native run-android

(now the app should be compiled and installed on the phone)

On phone:

  1. Run the app (expect to see the red error screen! - click Dismiss button in bottom left)
  2. Shake the phone and pick Dev Settings
  3. Pick Debug server host & port for device and set to 192.168.x.x:8081 (make it your actual LAN IP of course)
  4. Restart app on phone and you should see green bar at the top "Loading from 192.168.x.x:8081..."
  5. You should also see some "Bundling index.js" action in the Metro Bundler (that opened when running react-native run-android)
  6. After the bundle is finished, the app should be running on your Android device!

Live Reload (when source files change) also works - just shake the phone and touch "Enable Live Reload"

You can run the project from Android Studio, but you need to first start the Metro Bundler with the command react-native start in the CRNA project root.

plong0
  • 2,140
  • 1
  • 19
  • 18
0

I was getting this error too. But adb reverseworked for me

Syyam Noor
  • 474
  • 5
  • 15
0

i'm using ubuntu 18.04 LTS ,react-native: 0.55.2. In my case here are few solutions for the problem .

  1. in the terminal before you run npm run android type npm start. you might see an error ERROR Metro Bundler can't listen on port 8081. this occurs because there might be a process which is already running

    Solution- type sudo lsof -i :8081

    you will see an output similar to this

    **COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME

     node    5670 tasif   17u  IPv6  80997      0t0  TCP *:tproxy (LISTEN)**
    

    type kill -9 (PID number)then run npm android.

  2. if it still doesnt work type again npm start . you might see this error

    ERROR ENOSPC: no space left on device, watch'....../......./.....'

    solution :

    $ sudo sysctl fs.inotify.max_user_watches=524288

    $ sudo sysctl -p

    then type npm run android.

    please go to this link to see different solutions and more details https://github.com/guard/listen/wiki/Increasing-the-amount-of-inotify-watchers#the-technical-details

  3. delete the emulator and build it again. kill the recent terminal and then build emulator and start again.

Tasif
  • 79
  • 1
  • 3
  • 12