# Builds a debug APK with a JDK that Gradle 8.14 / AGP 8.13 can run. # The Java on PATH is Java 8. Android Studio's bundled JBR is Java 25, # which this Gradle version does not support. Temurin 21 is the right runtime. $ErrorActionPreference = "Stop" Set-Location $PSScriptRoot function Get-JavaMajor([string]$JdkDir) { $release = Join-Path $JdkDir "release" if (-not (Test-Path $release)) { return 0 } $line = Select-String -Path $release -Pattern 'JAVA_VERSION="(\d+)' | Select-Object -First 1 if (-not $line) { return 0 } return [int]$line.Matches[0].Groups[1].Value } function Find-Jdk { $candidates = @( "$env:USERPROFILE\.jdks\temurin-21", "$env:USERPROFILE\.jdks\temurin-17", ${env:JAVA_HOME} ) | Where-Object { $_ } foreach ($dir in $candidates) { $java = Join-Path $dir "bin\java.exe" if (-not (Test-Path $java)) { continue } $major = Get-JavaMajor $dir if ($major -ge 17 -and $major -le 24) { return $dir } } return $null } $jdk = Find-Jdk if (-not $jdk) { Write-Error @" No JDK 17-21 found. Install Temurin 21, or point JAVA_HOME at one. Android Studio's bundled JBR is Java 25; Gradle 8.14.3 cannot use it. The Java on PATH is Java 8; AGP 8.13 cannot use it either. "@ } $env:JAVA_HOME = $jdk $env:PATH = "$(Join-Path $jdk 'bin');$env:PATH" Write-Host "JAVA_HOME=$env:JAVA_HOME" & (Join-Path $PSScriptRoot "gradlew.bat") assembleDebug @args if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE } $apk = Join-Path $PSScriptRoot "app\build\outputs\apk\debug\app-debug.apk" if (Test-Path $apk) { Write-Host "APK: $apk" }