Documentation Index
Fetch the complete documentation index at: https://mintlify.com/satsigner/satsigner/llms.txt
Use this file to discover all available pages before exploring further.
Overview
This guide covers building SatSigner for Android devices and emulators. The build process uses Expo with React Native and requires Android SDK 34, Java JDK 17, and proper environment configuration.Prerequisites
Required Software
- Node.js version 22.4.0 or higher
- Yarn package manager
- Java JDK 17 (for building) and JDK 8 (for SDK management)
- Android SDK with build tools version 34.0.0
- NDK version 25.1.8937393
Install Yarn
If you don’t have Yarn installed:Android Environment Setup
Option 1: Android Studio (Recommended)
Install Android Studio which includes all necessary Android development tools:- Download and install Android Studio
- Open Android Studio and go to Settings → Appearance & Behavior → System Settings → Android SDK
- Install Android SDK 34 (API level 34)
- Install Android SDK Build-Tools 34.0.0
- Install Android NDK 25.1.8937393
Option 2: Command Line Tools
For developers using other IDEs, install these packages:android-sdkandroid-sdk-build-toolsandroid-sdk-platform-toolsandroid-tools
Environment Variables
Linux/macOS
Add these environment variables to your shell configuration (~/.bashrc, ~/.zshrc, etc.):
ANDROID_HOME is typically ~/Library/Android/sdk
Using direnv (Optional)
For project-specific environment variables, usedirenv:
- Install direnv:
brew install direnv(macOS) or via your package manager - Create
apps/mobile/.envrcwith: - Run
direnv allowin the directory
Windows
Use Git Bash instead of PowerShell. Create or editC:\Users\<username>\.bash_profile:
<username> with your Windows username.
SDK Configuration
SDK Requirements
- minSdkVersion: 23
- compileSdkVersion: 34
- targetSdkVersion: 34
- buildToolsVersion: 34.0.0
- kotlinVersion: 1.8.10
- ndkVersion: 25.1.8937393
apps/mobile/android/build.gradle.
Installing System Images
Step 1: Enable JDK 8
For SDK management, temporarily switch to JDK 8: Arch Linux:Step 2: List Available Images
- Intel/AMD:
system-images;android-34;default;x86_64 - Apple Silicon:
system-images;android-34;default;arm64-v8a
Step 3: Install System Image
Step 4: Create Emulator Device
myemulator with your desired device name.
Step 5: Switch to JDK 17
Critical: Switch to JDK 17 before building: Arch Linux:Installation
From the repository root:Building and Running
Standard Build
Build and run the app on a connected device or emulator:- Compiles the Android project
- Installs the development build
- Starts the Metro bundler
- Launches the app
Alternative: Expo CLI
Running on Physical Device
- Enable Developer Options on your Android device:
- Go to Settings → About Phone
- Tap “Build Number” 7 times
- Enable USB Debugging in Developer Options
- Connect device via USB
- Verify connection:
adb devices - Run:
yarn android
Troubleshooting
Build Error: [CXX5304]
This error occurs when _JAVA_OPTIONS interferes with the build:
Build Fails with Java Version Error
Ensure you’re using JDK 17 for building:Metro Bundler Connection Issues
If the app can’t connect to Metro:Gradle Build Timeout
Increase Gradle daemon memory:- Create/edit
apps/mobile/android/gradle.properties - Add:
Clean Build
If experiencing persistent build issues:Emulator Won’t Start
Verify emulator installation:SDK Location Not Found
Createapps/mobile/android/local.properties:
ANDROID_HOME path.
Path Issues on Windows
- Always use Git Bash, not PowerShell or CMD
- Ensure
.bash_profileis inC:\Users\<username>\ - Restart Git Bash after editing
.bash_profile - Verify paths:
echo $ANDROID_HOME
Build Configuration
Key configuration files:apps/mobile/android/build.gradle- SDK versions and build toolsapps/mobile/android/app/build.gradle- App-specific build configapps/mobile/app.json- Expo configurationapps/mobile/package.json- Build scripts
Next Steps
- Build for iOS - Build for iOS devices
- Storybook - Component development workflow
- Contributing - Contribution guidelines