Edit this page
Learn about what React Native version mismatch means and how to resolve it in an Expo or React Native app.
When developing an Expo or React Native app, it's common to run into an error that looks like:
React Native version mismatch.
JavaScript version: X.XX.X
Native version: X.XX.X
Make sure you have rebuilt the native code...
The bundler that you're running in your terminal (using npx expo start
) is using a different JavaScript version of react-native
than the native app on your device or emulator. This can happen after upgrading your React Native or Expo SDK version, or when connecting to the wrong local development server.
Close out any development servers that you have running (you can list all terminal processes with the ps
command, and search for Expo CLI or React Native community CLI processes with ps -A | grep "expo\|react-native"
).
If this is a Expo project, either remove the sdkVersion
field from your app.json file, or make sure it matches the value of the expo
dependency in your package.json file.
If this is a Expo project, you should make sure your react-native
version is correct. Run npx expo-doctor
will show a warning where the react-native
version you should install. If you did upgrade to a newer SDK, make sure to run npx expo install --fix
and follow the prompts. Expo CLI will make sure that your dependency versions for packages like expo
and react-native
are aligned.
If this is a bare React Native project, and this error is occurring right after upgrading your React Native version, you should double-check that you have performed each of the upgrade steps correctly.
Finally:
rm -rf node_modules && npm cache clean --force && npm install && watchman watch-del-all && rm -rf $TMPDIR/haste-map-* && rm -rf $TMPDIR/metro-cache && npx expo start --clear
npx pod-install
, then rebuild your native projects (run yarn android
to rebuild for Android, and yarn ios
to rebuild iOS)