This red screen means the app couldn't download the JS bundle from Metro. Either Metro isn't running, or your device can't reach it. The fix depends on whether you're debugging or building a release.
The Error
Unable to load script. Make sure you're either running Metro (run 'npx react-native start') or that your bundle 'index.android.bundle' is packaged correctly for release.
Debug Build: Connect to Metro
# Make sure Metro is running
npx react-native start
# Forward the Metro port to the device
adb reverse tcp:8081 tcp:8081Physical Device: Set the Dev Server Host
On a real device, shake → Dev Settings → Debug server host, and set it to your machine's LAN IP and port 8081.
Release Build: Bundle the JS
npx react-native bundle \
--platform android --dev false \
--entry-file index.js \
--bundle-output android/app/src/main/assets/index.android.bundle \
--assets-dest android/app/src/main/resSolution
Debugging on an emulator? adb reverse tcp:8081 tcp:8081 fixes it instantly. Building a release APK? You need the bundle command above.
