Reputation: 91
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
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
Reputation: 87
For Windows user only:
PATH
in your system variable,package.JSON
file
change react-native version "react-native": "0.55.2"
, and
babel "babel-preset-react-native": "4"
, after that run npm install
react-native run-android
Upvotes: 1
Reputation: 75
i'm using ubuntu 18.04 LTS ,react-native: 0.55.2. In my case here are few solutions for the problem .
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
.
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
delete the emulator and build it again. kill the recent terminal and then build emulator and start again.
Upvotes: 0
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.
sudo chown user-name-of-pc /dev/kvm
in my case.Use USB to Transfer photos (PTP)
.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
./studio.sh
in android-studio/bin
directory. It will opens up Android Studio.react-native run-android
.Upvotes: 2
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
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
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:
create-react-native-app myApp
cd myApp
yarn run eject
(I used default options "regular React Native project")react-native run-android
(now the app should be compiled and installed on the phone)
On phone:
index.js
" action in the Metro Bundler (that opened when running react-native run-android
)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
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
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
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
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
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