--- name: android-build description: "Android-App bauen (assembleDebug/Release), Gradle-Kommandos, häufige Build-Fehler beheben. Verwende diesen Skill für alles rund um Kompilierung, Gradle, Dependency-Management und Build-Konfiguration. Trigger-Phrasen: 'build', 'bauen', 'kompilieren', 'assembleDebug', 'Gradle', 'dependency', 'APK'." --- # Skill: Android Build Baut die Krisenvorrat-Android-App mit Gradle. Handhabt bekannte Fallstricke auf diesem Windows-Setup. --- ## Voraussetzungen | Komponente | Pfad / Wert | | ---------------- | ---------------------------------------------------------------------- | | Android SDK | `C:\Users\JensR\AppData\Local\Android\Sdk` | | ANDROID_HOME | User-Umgebungsvariable (persistent gesetzt) | | local.properties | `sdk.dir=C\\:\\\\Users\\\\JensR\\\\AppData\\\\Local\\\\Android\\\\Sdk` | | Java | OpenJDK 21 (im PATH) | | Gradle | 8.11.1 (via Wrapper) | | Kotlin | 2.1.10 | | AGP | 8.7.3 | --- ## Build-Kommandos Verwende **immer** das `android-dev.ps1`-Skript statt roher Gradle-Aufrufe: ```powershell # Debug-Build (Standard) & ".github/skills/android-build/android-dev.ps1" -Action build # Clean + Build (bei File-Locks oder korruptem Cache) & ".github/skills/android-build/android-dev.ps1" -Action clean-build # Nur clean & ".github/skills/android-build/android-dev.ps1" -Action clean # Hot Reload: Build + Install + Relaunch auf laufendem Emulator (ohne Neustart) & ".github/skills/android-build/android-dev.ps1" -Action hot-reload ``` ### Direkter Gradle-Aufruf (Fallback) Falls das Skript nicht verfügbar ist: ```powershell $env:ANDROID_HOME = "C:\Users\JensR\AppData\Local\Android\Sdk" cd "x:\krisenvorrat" .\gradlew.bat assembleDebug 2>&1 | Out-String ``` **Wichtig:** Niemals `.\gradlew.bat ... 2>&1` ohne `| Out-String` verwenden – PowerShell interpretiert stderr-Warnungen sonst als Fehler und zeigt Exit-Code 1, obwohl Gradle `BUILD SUCCESSFUL` meldet. --- ## Bekannte Probleme ### 1. Build-Dateien gesperrt (`AccessDeniedException`) Dateien im `build/`-Verzeichnis können durch andere Prozesse gesperrt sein. **Lösung:** ```powershell Remove-Item "app\build" -Recurse -Force -ErrorAction SilentlyContinue Remove-Item "build" -Recurse -Force -ErrorAction SilentlyContinue # Dann erneut bauen ``` Das `android-dev.ps1`-Skript macht dies automatisch bei `-Action clean-build`. ### 2. PowerShell zeigt Exit-Code 1 trotz BUILD SUCCESSFUL Gradle gibt Deprecation-Warnungen auf stderr aus. PowerShell wertet das als Fehler. **Lösung:** Prüfe den Gradle-Output auf `BUILD SUCCESSFUL`, nicht den Exit-Code. ### 3. `Batchvorgang abbrechen (J/N)?` Tritt auf, wenn `gradlew.bat` ein Ctrl+C-Signal empfängt (z.B. durch Terminal-Timeout). **Lösung:** Verwende `| Out-String` und ausreichend Timeout (600s+). Das `android-dev.ps1`-Skript umgeht dieses Problem. ### 4. `android.useAndroidX` fehlt ``` gradle.properties muss enthalten: android.useAndroidX=true ``` --- ## APK-Ausgabe | Variante | Pfad | | -------- | ----------------------------------------------- | | Debug | `app/build/outputs/apk/debug/app-debug.apk` | | Release | `app/build/outputs/apk/release/app-release.apk` | --- ## Terminal-Aufruf-Konventionen ```powershell # Immer so aufrufen: run_in_terminal mode=sync timeout=600000 ``` Gradle-Builds dauern beim ersten Mal 2–5 Minuten (Daemon-Start + Download). Folge-Builds: 10–30 Sekunden.