From edcad3e5399e8802a0de0ab34582dafb146eaaa2 Mon Sep 17 00:00:00 2001 From: Markus Rambossek Date: Thu, 30 Jul 2026 16:53:52 +0200 Subject: [PATCH] prober: AGP 9.2 / Gradle 9.6 / Kotlin 2.2.10, targetSdk 36, build 5 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Lifts the build off the JDK-21 ceiling — the old AGP 8.7.3 pin could not run on JDK 25. Two AGP-9 migration edits were required: - AGP 9 ships built-in Kotlin support, so applying org.jetbrains.kotlin.android alongside it fails with "extension with name kotlin already registered"; the alias is dropped (kotlin.compose / kotlin.serialization stay, they are separate compiler plugins). - kotlinOptions { jvmTarget } came from that plugin and no longer resolves; AGP derives jvmTarget from compileOptions instead. compileSdk/targetSdk 35 -> 36, since Android Studio ships API 36.1 by default and installing 35 was avoidable churn. versionCode 5 so the reports from this toolchain are attributable (build 4 was already archived from the old one). Also fixes a missing comma that left .claude/settings.json invalid JSON. Co-Authored-By: Claude Opus 5 --- .claude/settings.json | 2 +- echolot-prober/app/build.gradle.kts | 10 +++------- echolot-prober/gradle/libs.versions.toml | 4 ++-- .../gradle/wrapper/gradle-wrapper.properties | 2 +- 4 files changed, 7 insertions(+), 11 deletions(-) diff --git a/.claude/settings.json b/.claude/settings.json index 0ad6384..4b6e756 100644 --- a/.claude/settings.json +++ b/.claude/settings.json @@ -1,7 +1,7 @@ { "permissions": { "allow": [ - "WebFetch(domain:open-vsx.org)" + "WebFetch(domain:open-vsx.org)", "WebFetch(domain:github.com)" ] } diff --git a/echolot-prober/app/build.gradle.kts b/echolot-prober/app/build.gradle.kts index 8ddd393..e980da3 100644 --- a/echolot-prober/app/build.gradle.kts +++ b/echolot-prober/app/build.gradle.kts @@ -1,21 +1,20 @@ plugins { alias(libs.plugins.android.application) - alias(libs.plugins.kotlin.android) alias(libs.plugins.kotlin.compose) alias(libs.plugins.kotlin.serialization) } android { namespace = "app.echo_lot.prober" - compileSdk = 35 + compileSdk = 36 defaultConfig { applicationId = "app.echo_lot.prober" minSdk = 26 - targetSdk = 35 + targetSdk = 36 // Bump versionCode on EVERY deployed change — it is shown on screen and lands in the // JSON report as proberBuild, so a report is attributable to an exact prober build. - versionCode = 4 + versionCode = 5 versionName = "0.1.0" } @@ -28,9 +27,6 @@ android { sourceCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17 } - kotlinOptions { - jvmTarget = "17" - } buildFeatures { compose = true aidl = true diff --git a/echolot-prober/gradle/libs.versions.toml b/echolot-prober/gradle/libs.versions.toml index e52442d..168ffdf 100644 --- a/echolot-prober/gradle/libs.versions.toml +++ b/echolot-prober/gradle/libs.versions.toml @@ -1,6 +1,6 @@ [versions] -agp = "8.7.3" -kotlin = "2.0.21" +agp = "9.2.0" +kotlin = "2.2.10" coreKtx = "1.13.1" lifecycle = "2.8.7" activityCompose = "1.9.3" diff --git a/echolot-prober/gradle/wrapper/gradle-wrapper.properties b/echolot-prober/gradle/wrapper/gradle-wrapper.properties index d4081da..7e7d24f 100644 --- a/echolot-prober/gradle/wrapper/gradle-wrapper.properties +++ b/echolot-prober/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.3-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.6.0-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME