From 0e11817654bac427e38e38637b7a71f26983632b Mon Sep 17 00:00:00 2001 From: Ilia Denisov Date: Tue, 14 Jul 2026 20:43:58 +0200 Subject: [PATCH] fix(android): pin build-tools to 36.0.0 for all modules AGP 8.13 defaults to build-tools 35.0.0, but the provisioned / read-only CI SDK (/opt/android-sdk) has only 36.0.0 installed, so a gradle build (the app + the cap-sync-generated Capacitor modules) fails trying to auto-install 35 into a read-only dir. Pin buildToolsVersion 36.0.0 for every Android sub-project (compileSdk-matching) so the CI android-build signed release and local builds work. Verified: a local assembleDebug now builds app-debug.apk. ci.yaml does not build Android (only the manual android-build workflow does), so this is verified locally. --- ui/android/build.gradle | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/ui/android/build.gradle b/ui/android/build.gradle index f8f0e43..471660d 100644 --- a/ui/android/build.gradle +++ b/ui/android/build.gradle @@ -24,6 +24,17 @@ allprojects { } } +// Pin build-tools to the compileSdk-matching version for every Android module (the app + the +// Capacitor modules regenerated by `cap sync`), so AGP does not fall back to its default (35.0.0), +// which the provisioned / read-only CI SDK does not have installed. +subprojects { + afterEvaluate { + if (project.hasProperty('android')) { + android.buildToolsVersion = "36.0.0" + } + } +} + task clean(type: Delete) { delete rootProject.buildDir }