title: react-native date: 2025-11-22 permalink: posts/undefined/index.html tags: [react-native, android, mobile]
π§ How to Run React Native on Arch Linux (and Fix Common Errors)
React Native works beautifully on Arch Linux β but because Arch uses newer packages (Java, SDK Tools, etc.), developers often run into version mismatches or Gradle issues that do not appear on Ubuntu or macOS. This guide explains how to correctly install the React Native Android toolchain on Arch, run your app, and fix the most common errors.
βοΈ 1. Install Required Packages on Arch
Install the base development environment:
sudo pacman -Syu
sudo pacman -S nodejs npm yarn git base-devel
Optional: use nvm or fnm to manage Node versions.
π± 2. Install Android Development Tools
Install JDK 17 (recommended for React Native 0.73+ and Expo SDK 50+):
sudo pacman -S jdk17-openjdk
Set it as default:
sudo archlinux-java set java-17-openjdk
Check:
java -version
You should get:
openjdk 17.x.x
Install Android Studio (recommended)
sudo pacman -S android-studio
OR without GUI:
sudo pacman -S android-sdk android-sdk-platform-tools android-sdk-build-tools android-sdk-cmdline-tools-latest
π 3. Set Environment Variables
Add these to ~/.bashrc or ~/.zshrc:
export ANDROID_HOME="$HOME/Android/Sdk"
export PATH="$ANDROID_HOME/emulator:$PATH"
export PATH="$ANDROID_HOME/platform-tools:$PATH"
export PATH="$ANDROID_HOME/cmdline-tools/latest/bin:$PATH"
# Java 17
export JAVA_HOME="/usr/lib/jvm/java-17-openjdk"
export PATH="$JAVA_HOME/bin:$PATH"
Reload:
source ~/.zshrc
π¦ 4. Install Required Android Packages
sdkmanager "platform-tools" "platforms;android-34" "build-tools;34.0.0"
sdkmanager "emulator"
sdkmanager "system-images;android-34;default;x86_64"
sdkmanager --licenses
βΆοΈ 5. Create an Android Emulator
avdmanager create avd -n pixel -k "system-images;android-34;default;x86_64"
emulator -avd pixel
π 6. Create and Run a React Native Project
Using React Native CLI
npx react-native init MyApp
cd MyApp
npx react-native start
In another terminal:
npx react-native run-android
Using Expo
npx create-expo-app MyApp
cd MyApp
npm start # or bun run android
β 7. Fixing Common React Native Errors on Arch Linux
Because Arch Linux uses very fresh versions of Java, SDK tools, and kernel drivers, React Native often fails with errors like:
π₯ Error: Unsupported class file major version 69 / 70
This means you are using Java 19/20/21/25, but React Native only supports Java 17.
Fix:
sudo pacman -S jdk17-openjdk
sudo archlinux-java set java-17-openjdk
java -version
π₯ Error: No connected device found
Fix by:
- Enabling USB Debugging on your phone
- Adding udev rules:
yay -S android-udev
sudo udevadm control --reload-rules
- Verifying device:
adb devices
π₯ Error: Could not find SDK root / sdkmanager not found
Fix:
Make sure cmdline-tools is installed:
sdkmanager --install "cmdline-tools;latest"
Add to PATH:
export PATH="$ANDROID_HOME/cmdline-tools/latest/bin:$PATH"
π₯ Error: NDK not found or missing source.properties
This happens A LOT on Arch when NDK downloads get interrupted.
Fix:
rm -rf ~/Android/Sdk/ndk
sdkmanager "ndk;27.1.12297006"
Or install manually (much faster):
wget https://dl.google.com/android/repository/android-ndk-r27b-linux.zip
unzip android-ndk-r27b-linux.zip
mv android-ndk-r27b ~/Android/Sdk/ndk/27.1.12297006
π₯ Error: Build stuck at 9% / 27% CONFIGURING
This happens because:
- Gradle is downloading huge dependencies
- NDK missing
- Gradle Kotlin DSL accessors corrupted
Fix corrupted Gradle cache:
./gradlew --stop
rm -rf ~/.gradle/caches/*/kotlin-dsl
rm -rf ~/.gradle/caches
Then rebuild:
./gradlew assembleRelease
π₯ Error: Gradle build extremely slow
Create ~/.gradle/gradle.properties:
org.gradle.daemon=true
org.gradle.parallel=true
org.gradle.configureondemand=true
org.gradle.caching=true
org.gradle.jvmargs=-Xmx4g
Speeds builds by 5β10Γ.
π¦ 8. Creating a Release APK (React Native / Expo)
React Native CLI:
cd android
./gradlew assembleRelease
APK output:
android/app/build/outputs/apk/release/app-release.apk
Expo (Production build)
npx expo prebuild
cd android
./gradlew assembleRelease
π― Final Tips for Arch Linux Users
β Always use Java 17
β Use the latest cmdline-tools
β Only install NDK 27.X unless your project requires another version
β Donβt interrupt gradlew β it corrupts caches
β If something is weird: delete ~/.gradle/caches and rebuild