bollwerk/.github/skills/android-build/SKILL.md
Jens Reinemann 9ea57f89a5 chore(skills): update paths after project move from OneDrive to X:\
android-build SKILL.md:
- Replaced all OneDrive path references with x:\krisenvorrat
- Changed 'OneDrive-Locks' terminology to 'File-Locks'

android-build android-dev.ps1:
- Changed 'OneDrive-Lock' comments to 'File-Lock'
- Script already used dynamic $PSScriptRoot path resolution, no path fix needed

android-emulator SKILL.md:
- Updated path references to new project location

Motivation: project was moved from C:\Users\JensR\OneDrive\Code\krisenvorrat
to x:\krisenvorrat to avoid OneDrive sync issues.
2026-05-13 21:57:13 +02:00

108 lines
3.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
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
```
### 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 25 Minuten (Daemon-Start + Download). Folge-Builds: 1030 Sekunden.