---
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/OneDrive-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 OneDrive-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
```

### Direkter Gradle-Aufruf (Fallback)

Falls das Skript nicht verfügbar ist:

```powershell
$env:ANDROID_HOME = "C:\Users\JensR\AppData\Local\Android\Sdk"
cd "c:\Users\JensR\OneDrive\Code\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. OneDrive sperrt Build-Dateien (`AccessDeniedException`)

OneDrive synchronisiert das `build/`-Verzeichnis und sperrt dabei Dateien.

**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.
