Trouble shooting React Native apps

When debugging React Native build issues in your app, it would be helpful to have React Native's demo app on your local environment to verify if the problem happens there too or not. If problem also shows in demo app, this means the issue is not related to your project, but to your build tools or your dev environment. If the problem doesn't happen in demo app, then it's most likely due to your project dependencies or react native version and so on. To install and start the demo app run this in terminal:

npx @react-native-community/cli@latest init AwesomeProject
npm start

If you need information about your setup during debug or for reporting a problem on GitHub use this command:

npx react-native info

Here are some common issues I have run into:

Android Studio fails on Build > Rebuild Project with error: Unable to make progress running work...

If you get this error add the following snippet to bottom of your android/build.gradle file:

gradle.startParameter.excludedTaskNames.addAll(
        gradle.startParameter.taskNames.findAll { it.contains("testClasses") }
)

For more info: https://github.com/gradle/gradle/issues/25747

Webview scrolling slow and without momentum on iOS

Add decelerationRate='normal' to WebView:

import WebView from 'react-native-webview';

<WebView
  style={styles.webView}
  decelerationRate='normal'
  source={{
    uri: 'myweburl',
  }}
  ...
/>

For more info: https://github.com/react-native-webview/react-native-webview/issues/1070

Hot reloading not working on connected iPhone

If you start the app via npm run ios on your usb-connected iphone and changes in code do not automatically show on your phone or if metro bundler in terminal shows this warning:

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

Make sure your iPhone and Macbook are connected to the same WiFi network. Then go to iPhone Settings > Privacy & Security > Local Network and enable it for your app which should be listed there. Solution was suggested here: https://stackoverflow.com/a/64805856/884177

Android Studio not recognizing connected Android phone

If Android Studio doesn't recognize your USB-connected phone, go to android settings disable USB debugging in developer options and disconnect your phone and close Android Studio. Then start Android Studio again, connect your phone via USA, and enable USB debugging again. Now your phone should show up in AS's Device Manager.

Updating Pods after adding/removing dependencies

If you install or uninstall react native dependencies, it's a good practice to always cd into ios folder and run pod install there to avoid Xcode build breaking.

Unpairing iPhone

If you want to run your app on iOS simulator, but npm run ios keeps trying to run it on your iPhone device, you need to go to Xcode > Product > Destination > Manage Run Destinations and unpair your phone.

No logging in terminal when running on iOS

If you run your app via Xcode and you are not getting any logs in terminal, it could be because you used a Release scheme rather than a Debug scheme.

Unable to boot the Simulator (iOS)

If you keep getting the error Unable to boot the Simulator when trying to run iOS simulator, you need to clean Xcode cache as shown in this video: https://www.youtube.com/watch?v=38MIOYZOcHg

Android Studio throws error during build: A problem occurred starting process 'command 'npm''

  • Close Android Studio
  • From inside android folder run command: ./gradlew --stop to stop gradle daemon.
  • Start Android Studio from command line: open -a /Applications/Android\ Studio.app.
    For more info see this post.

If problem keeps reccuring, you may need to change Gradle JDK in Android Studio as suggested here: https://github.com/expo/expo/issues/28309#issuecomment-2405560702

For more trouble shooting tips go to: https://reactnative.dev/docs/troubleshooting