Step 5
Android build
30 min
Android build
Tauri 2's key differentiator. Same codebase produces an APK.
1. Prereqs
- Android Studio
- SDK Manager → Platform 34 · NDK (Side by side) · Cmdline-Tools
- Env vars:
export ANDROID_HOME=$HOME/Library/Android/sdk # macOS example
export NDK_HOME=$ANDROID_HOME/ndk/26.1.10909125
export PATH=$PATH:$ANDROID_HOME/cmdline-tools/latest/bin:$ANDROID_HOME/platform-tools
2. Rust targets
rustup target add aarch64-linux-android armv7-linux-androideabi i686-linux-android x86_64-linux-android
aarch64 is what most devices use.
3. Init
pnpm tauri android init
Generates src-tauri/gen/android/. Keep edits minimal; Tauri syncs it.
4. Dev
pnpm tauri android dev
Needs emulator or connected device.
5. Release
pnpm tauri android build
Outputs APK / AAB in src-tauri/gen/android/app/build/outputs/apk/.
6. Signing
keytool -genkey -v -keystore release-key.keystore \
-alias my-app-key -keyalg RSA -keysize 2048 -validity 10000
src-tauri/gen/android/key.properties:
password=...
keyAlias=my-app-key
storePassword=...
storeFile=../../release-key.keystore
Never commit the keystore.
7. Permissions
<uses-permission android:name="android.permission.INTERNET"/>
Opt into only what you use. Google Play will ask why for each permission.
8. Icons
src-tauri/icons/
pnpm tauri icon ./path/to/icon.png
9. Gotchas
- NDK version drift — check Tauri docs
- Missing Rust targets
- Lost signing key → new app listing
- Missing manifest permissions → runtime fails
10. Submission checklist
-
minSdkVersion ≥ 24 - Current
targetSdkVersion - 64-bit (aarch64) included
- Keystore safely stored
- Privacy policy URL ready
Closing
Your first Android build is mostly NDK / SDK / signing setup. Block half a day. After that, pnpm tauri android build.
Next
- 06-ocr-stt-tts