YB Tester
YB Tester

Reputation: 91

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

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."

Upvotes: 9

Views: 39321

Answers (13)

Kylo Ren
Kylo Ren

Reputation: 486

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"
  }

Upvotes: 1

mahendra
mahendra

Reputation: 87

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

Upvotes: 1

Tasif
Tasif

Reputation: 75

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.

Upvotes: 0

Syyam Noor
Syyam Noor

Reputation: 504

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

Upvotes: 0

Harat
Harat

Reputation: 1366

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.

Upvotes: 2

grailian
grailian

Reputation: 720

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();

Upvotes: 10

requirunt
requirunt

Reputation: 55

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

Upvotes: 1

plong0
plong0

Reputation: 2188

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.

Upvotes: -1

Darshan Pania
Darshan Pania

Reputation: 1414

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

Upvotes: 16

Anchal_Systematix
Anchal_Systematix

Reputation: 69

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

Upvotes: 2

Nilesh Modak
Nilesh Modak

Reputation: 361

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

Upvotes: 23

Bhavan Patel
Bhavan Patel

Reputation: 1755

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

Upvotes: 2

user8267593
user8267593

Reputation: 11

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 [email protected] and removes the error when running react-native run-android.

Edit: It is now fixed in version 0.46.1.

Upvotes: 1

Related Questions