From c5f52190ef47dc5c04d86bd2b05c83277921ec49 Mon Sep 17 00:00:00 2001 From: hailin Date: Wed, 31 Dec 2025 23:42:06 -0800 Subject: [PATCH] feat(android): add Android SDK auto-detection to build-apk.bat MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When local.properties is missing, the build script now automatically: - Checks ANDROID_HOME environment variable first - Scans common Windows SDK locations: - %LOCALAPPDATA%\Android\Sdk - %USERPROFILE%\AppData\Local\Android\Sdk - C:\Android\Sdk - C:\Android - Creates local.properties with the detected SDK path - Displays helpful error message if SDK is not found This allows the build script to work on machines without manual configuration, making it easier to build APKs on different systems. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- .../service-party-android/build-apk.bat | 58 +++++++++++++++++++ 1 file changed, 58 insertions(+) diff --git a/backend/mpc-system/services/service-party-android/build-apk.bat b/backend/mpc-system/services/service-party-android/build-apk.bat index 5130b701..f2ed32e8 100644 --- a/backend/mpc-system/services/service-party-android/build-apk.bat +++ b/backend/mpc-system/services/service-party-android/build-apk.bat @@ -14,6 +14,64 @@ if not exist "gradlew.bat" ( exit /b 1 ) +:: Check and create local.properties if needed +if not exist "local.properties" ( + echo [INFO] local.properties not found, attempting to detect Android SDK... + + :: Try common SDK locations + set SDK_FOUND=0 + + :: Check ANDROID_HOME environment variable first + if defined ANDROID_HOME ( + if exist "!ANDROID_HOME!\platform-tools" ( + echo sdk.dir=!ANDROID_HOME:\=/!> local.properties + echo [INFO] Created local.properties with ANDROID_HOME: !ANDROID_HOME! + set SDK_FOUND=1 + ) + ) + + :: Try common Windows locations + if !SDK_FOUND!==0 ( + for %%P in ( + "%LOCALAPPDATA%\Android\Sdk" + "%USERPROFILE%\AppData\Local\Android\Sdk" + "C:\Android\Sdk" + "C:\Android" + "C:\Users\%USERNAME%\Android\Sdk" + ) do ( + if exist "%%~P\platform-tools" ( + set "SDK_PATH=%%~P" + set "SDK_PATH=!SDK_PATH:\=/!" + echo sdk.dir=!SDK_PATH!> local.properties + echo [INFO] Created local.properties with SDK path: %%~P + set SDK_FOUND=1 + goto :sdk_found + ) + ) + ) + + :sdk_found + if !SDK_FOUND!==0 ( + echo [ERROR] Android SDK not found! + echo. + echo Please do one of the following: + echo 1. Set ANDROID_HOME environment variable to your SDK path + echo 2. Create local.properties file with: sdk.dir=C:/path/to/android/sdk + echo 3. Install Android Studio which includes the SDK + echo. + echo Common SDK locations: + echo - %LOCALAPPDATA%\Android\Sdk + echo - C:\Android\Sdk + echo. + pause + exit /b 1 + ) +) + +echo [INFO] Using SDK from local.properties +type local.properties +echo. + :: Parse command line arguments set BUILD_TYPE=all if "%1"=="debug" set BUILD_TYPE=debug