Matthew Matthew - 5 months ago 137
Android Question

react native android failed to load JS bundle

I'm trying to run AwesomeProject on my Nexus5 (android 5.1.1).

I'm able to build the project and install it on the device. But when I run it, I got a red screen saying


Unable to download JS bundle. Did you forget to start the development server or connect your device?


In react native iOS, I can choose to load jsbundle offline. How can I do the same thing for Android? (Or at least, where can I configure the server address?)

Update



To run with local server, run the following commands under your react-native project root directory




  1. react-native start > /dev/null 2>&1 &

  2. adb reverse tcp:8081 tcp:8081



please take a look at dsissitka's answer for more details.

To run without a server, bundle the jsfile into the apk by running:




  1. create an assets folder under
    android/app/src/main

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



please take a look at kzzzf's answer for more details.

Answer

To bundle JS file into your apk while having your server running (react-native start) download bundle into assets directory of your app:

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

With the next release (0.12) we'll fix react-native bundle command to work with android projects as expected.