No apps connected. Sending "reload" to all React Native apps failed. Make sure your app is running in the simulator or on a phone connected via USB

Solution 1:

⚠️ For iOS users :

Check that your build target is Debug :

Xcode Product => Scheme => Edit Scheme => Debug (and not release ! )

⚠️ For Android users :

I have found a solution that I posted on github. Not the best but it could be useful:

First, you have to open MainApplication.java and remove import com.facebook.react.BuildConfig;

Next, follow these steps :

    # Reset metro bundler cache : 
    `npx react-native start --reset-cache`
        
    # Remove Android assets cache : 
    `cd android && ./gradlew clean`
        
    # Relaunch metro server : 
    `npx react-native run-android`

And see the magic 🎉

See here : https://github.com/facebook/react-native/issues/29396

Solution 2:

Running this worked for me for a Physical Android Device.

adb reverse tcp:8081 tcp:8081

or

npm run android-connect

If you face an error saying 'More than two devices are running', make sure that the emulators like BlueStacks are not running.

Solution 3:

Your iPhone has to be connected to the same network (WiFi for example) as your Mac, because they have to communicate with each other (React Native Doc).

If it's already the case, then fill in the DCHP server manually on your iPhone and Mac, using Google's server (8.8.8.8), because it could be due to DHCP problems.

You may need to disconnect and reconnect to your Wifi.

Solution 4:

For me I need to set the bundler location in my app from "localhost:8081" to "192.168.1.XX:8081" which is my computer's local IP address where Metro bundler runs on and the port is 8081.

If you don't know which port your bundler runs on you can specify it as a parameter like:

npx react-native start --port 8081

Then you need to specify the location in your development app. To do that:

  • Shake your device

  • Click change bundle location (I am on RN 0.64 it may differ in yours)

  • Give the bundler location of your computer's IP and port where Metro bundler runs on like:

Bundle Location Change Dialog

and they started to communicate with each other.