# Building CellGuard ## Toolchain | Component | Version | |-------------------|-----------| | Gradle (wrapper) | 8.9 | | Android Gradle Plugin | 8.5.2 | | Kotlin | 1.9.23 | | Compose compiler | 1.5.11 | | JDK | 21 | | compileSdk / targetSdk | 35 | | minSdk | 33 | | Build tools | 35.0.0 | These versions are mutually compatible: AGP 8.5.2 requires Gradle 8.7+ and JDK 17+ (JDK 21 is fine), and Kotlin 1.9.23 pins the Compose compiler extension to 1.5.11. ## Prerequisites - JDK 21 installed at `/usr/lib/jvm/java-21-openjdk-arm64` - Android SDK at `/home/snake/Android/Sdk` with: - `platforms/android-35` - `build-tools/35.0.0` - Network access for the first build (downloads AndroidX, Compose BOM 2024.06.00, and libsu 5.2.2 from Google, Maven Central, and JitPack). ## Build command (debug APK) ```bash export JAVA_HOME=/usr/lib/jvm/java-21-openjdk-arm64 export ANDROID_HOME=/home/snake/Android/Sdk cd /home/snake/CellGuard-app && ./gradlew :app:assembleDebug ``` ## Output The debug APK is written to: ``` /home/snake/CellGuard-app/app/build/outputs/apk/debug/app-debug.apk ``` For a release (unsigned) build, run `./gradlew :app:assembleRelease`; the artifact lands in `app/build/outputs/apk/release/`.