## Objectif Builder l'APK Android de la **montre Wear OS** GameTime de manière déterministe, sans recalculer l'environnement de build à chaque fois. ## Usage obligatoire Toujours lancer le script dédié depuis le project root : ```bash bash .ideai/skills/scripts/build-watch-apk.sh debug ``` ou pour un build optimisé : ```bash bash .ideai/skills/scripts/build-watch-apk.sh release ``` Par défaut, si aucun mode n'est donné, le script construit `debug`. ## Ce que le script fixe automatiquement - réutilise le SDK Flutter writable dans `.ideai/build-env/flutter-sdk` ; - isole `HOME`, `XDG_*` et `GRADLE_USER_HOME` dans `.ideai/build-env` ; - force **Java 21** via `/usr/lib/jvm/java-21-openjdk` ; - configure `ANDROID_HOME=/opt/android-sdk` et le `PATH` Android/Java ; - se place dans `watch_app/` ; - lance `flutter pub get` puis `flutter build apk`. Ne pas builder la montre depuis le root téléphone, et ne pas improviser une autre sortie de build : l'app montre a son propre projet Flutter sous `watch_app/`. ## Sorties - Debug : `watch_app/build/watch_app/app/outputs/flutter-apk/app-debug.apk` - Release : `watch_app/build/watch_app/app/outputs/flutter-apk/app-release.apk` Le script affiche le chemin final de l'APK. ## Quand l'utiliser - Après tout changement Flutter/Android dans `watch_app/`. - Avant une installation ADB sur la montre. - Avant une vérification de connexion téléphone/montre. ## Diagnostic rapide - `Unsupported class file major version 70` : `JAVA_HOME` n'est pas sur Java 21. - `No space left on device` : manque d'espace dans le volume qui porte `.ideai/build-env`. - erreur `adb: more than one device/emulator` : le build est bon, le problème est au moment de l'installation ADB, pas du build. ## Règle d'exécution Pour builder l'APK montre, ne pas réfléchir à la recette : exécuter le script ci-dessus avec `debug` ou `release`, puis vérifier l'APK dans `watch_app/build/watch_app/app/outputs/flutter-apk/`.