All those answers about changing versions to match whatever were wrong for me.
What the error does not tell you is where that version is coming from. Running a search of all files, I found that there was only 1 place where the javascript version was defined:
The problem was that the bundle (\android\app\src\main\assets\index.android.bundle
) needed to be regenerated as it was containing older versions compared to the installed bundle.
In order to regenerate that file, I had to run the following command:
react-native bundle --platform android --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res
And because I had upgraded my react-native, running this command gave me a few errors I needed to resolve (mainly installing new dependencies).
Clearing cache, reloading in android studio, reloading react, reloading the terminal, creating a new project and transfering the files, running watchman, all did not work as that specific bundle file happens to be tracked in the Git repo.