From 1ee75f2f608659b6675f313b92ed3748ed9ff5fa Mon Sep 17 00:00:00 2001 From: Claude Date: Wed, 7 Oct 2026 09:42:50 +0000 Subject: [PATCH 1/4] fix(build): remove android.defaults.buildfeatures.buildconfig removed in AGP 9 AGP 9.0 removed this option and now fails plugin application when it is set ('The option android.defaults.buildfeatures.buildconfig is deprecated... It was removed in version 9.0'). Since the AGP 9.4.1 bump this breaks every Gradle invocation outside the main build, including the CodeQL java-kotlin autobuild and the Dependency Submission workflow that feeds Dependabot alerts. Nothing in the SDK uses BuildConfig, and the AGP 9 default is already false. Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_01B1EyETCfytcS4FYcPKWzNw --- gradle.properties | 3 --- 1 file changed, 3 deletions(-) diff --git a/gradle.properties b/gradle.properties index cc6a08e..132244e 100644 --- a/gradle.properties +++ b/gradle.properties @@ -21,6 +21,3 @@ kotlin.code.style=official # resources declared in the library itself and none from the library's dependencies, # thereby reducing the size of the R class for that library android.nonTransitiveRClass=true - -# Enable build config generation -android.defaults.buildfeatures.buildconfig=true \ No newline at end of file From aa8d1222d7f7409759a704249ccfbf40bd68a344 Mon Sep 17 00:00:00 2001 From: Claude Date: Wed, 7 Oct 2026 09:49:27 +0000 Subject: [PATCH 2/4] fix(build): adopt AGP 9 built-in Kotlin and legacy-kapt AGP 9 no longer allows org.jetbrains.kotlin.android ('no longer required for Kotlin support since AGP 9.0') and does not support org.jetbrains.kotlin.kapt with built-in Kotlin. Drop the Kotlin Android plugin and use com.android.legacy-kapt, which the data binding annotation processor needs. Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_01B1EyETCfytcS4FYcPKWzNw --- android/build.gradle.kts | 6 ++++-- build.gradle.kts | 1 - 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/android/build.gradle.kts b/android/build.gradle.kts index 6ee3a36..71e8220 100644 --- a/android/build.gradle.kts +++ b/android/build.gradle.kts @@ -15,8 +15,10 @@ buildscript { plugins { id("com.android.library") - kotlin("android") - kotlin("kapt") + // AGP 9 has Kotlin support built in, so org.jetbrains.kotlin.android must not be applied. + // legacy-kapt replaces org.jetbrains.kotlin.kapt, which is unsupported with built-in Kotlin; + // it is what runs the data binding annotation processor. + id("com.android.legacy-kapt") kotlin("plugin.serialization") version "2.4.20" alias(libs.plugins.dokka) alias(libs.plugins.dokka.javadoc) diff --git a/build.gradle.kts b/build.gradle.kts index d4a2609..fd535a0 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -29,6 +29,5 @@ buildscript { plugins { alias(libs.plugins.android.application) apply false - alias(libs.plugins.kotlin.android) apply false alias(libs.plugins.android.library) apply false } From 3092835c68d254b80b1466f2ead69bf777a472e3 Mon Sep 17 00:00:00 2001 From: Claude Date: Wed, 7 Oct 2026 09:54:42 +0000 Subject: [PATCH 3/4] fix(build): resolve com.android.legacy-kapt from the version catalog legacy-kapt is a separate artifact from the AGP jar, so it needs a version on the root classpath; register it next to com.android.library (apply false) and keep it on the agp version. Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_01B1EyETCfytcS4FYcPKWzNw --- build.gradle.kts | 1 + gradle/libs.versions.toml | 1 + 2 files changed, 2 insertions(+) diff --git a/build.gradle.kts b/build.gradle.kts index fd535a0..6b69936 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -30,4 +30,5 @@ buildscript { plugins { alias(libs.plugins.android.application) apply false alias(libs.plugins.android.library) apply false + alias(libs.plugins.android.legacy.kapt) apply false } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 7744cf5..4004439 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -81,5 +81,6 @@ androidx-databinding-common = { group = "androidx.databinding", name = "databind android-application = { id = "com.android.application", version.ref = "agp" } kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" } android-library = { id = "com.android.library", version.ref = "agp" } +android-legacy-kapt = { id = "com.android.legacy-kapt", version.ref = "agp" } dokka = { id = "org.jetbrains.dokka", version.ref = "dokka" } dokka-javadoc = { id = "org.jetbrains.dokka-javadoc", version.ref = "dokka" } From 81c488bd378f2e41b4b6f73f57869bf76e1256b6 Mon Sep 17 00:00:00 2001 From: Claude Date: Wed, 7 Oct 2026 10:00:05 +0000 Subject: [PATCH 4/4] fix(build): fix android/build.gradle.kts script errors from the Gradle 9 / publish plugin bumps - vanniktech 0.37.0 removed SonatypeHost; publishToMavenCentral() now defaults to the Central Portal (automatic release stays off, as before). - AndroidSingleVariantLibrary takes SourcesJar/JavadocJar instead of booleans; the mapping is unchanged (sources jar yes, javadoc jar none - the Dokka one is attached separately). - Drop deprecated isTestCoverageEnabled; enableAndroidTestCoverage already covers the instrumented coverage jacocoAndroidTestReport reads. - Replace the deprecated 'tasks.registering' delegate with tasks.register. Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_01B1EyETCfytcS4FYcPKWzNw --- android/build.gradle.kts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/android/build.gradle.kts b/android/build.gradle.kts index 71e8220..3bfa545 100644 --- a/android/build.gradle.kts +++ b/android/build.gradle.kts @@ -1,5 +1,6 @@ import com.vanniktech.maven.publish.AndroidSingleVariantLibrary -import com.vanniktech.maven.publish.SonatypeHost +import com.vanniktech.maven.publish.JavadocJar +import com.vanniktech.maven.publish.SourcesJar import org.jetbrains.kotlin.gradle.dsl.JvmTarget // The Dokka Gradle plugin puts Dokka's engine, and with it Jackson, on this build script's @@ -105,7 +106,6 @@ android { buildTypes { getByName("debug") { enableAndroidTestCoverage = true - isTestCoverageEnabled = true // For backward compatibility } release { isMinifyEnabled = true @@ -181,7 +181,7 @@ dokka { } } -val dokkaJavadocJar by tasks.registering(Jar::class) { +val dokkaJavadocJar = tasks.register("dokkaJavadocJar") { group = "documentation" description = "Packages the Dokka Javadoc output into the -javadoc jar published to Maven Central." from(tasks.named("dokkaGeneratePublicationJavadoc")) @@ -189,7 +189,7 @@ val dokkaJavadocJar by tasks.registering(Jar::class) { } mavenPublishing { - publishToMavenCentral(SonatypeHost.CENTRAL_PORTAL) + publishToMavenCentral() // AGP's own withJavadocJar() runs a bundled Dokka 1.4.32 engine on a detached // configuration that neither the dependency report nor the floors above can reach (old @@ -198,8 +198,8 @@ mavenPublishing { configure( AndroidSingleVariantLibrary( variant = "release", - sourcesJar = true, - publishJavadocJar = false, + sourcesJar = SourcesJar.Sources(), + javadocJar = JavadocJar.None(), ) )