From 1df1cdc3b29fa84c71912b9f6e3f859e8fa14cd7 Mon Sep 17 00:00:00 2001 From: dkhawk <107309+dkhawk@users.noreply.github.com> Date: Fri, 20 Feb 2026 10:33:42 -0700 Subject: [PATCH 1/5] build(deps): update dependencies androidx.activity:activity-ktx 1.12.2 -> 1.12.4 org.jetbrains.kotlin:kotlin-stdlib-jdk7 2.3.0 -> 2.3.10 com.google.maps.android:android-maps-utils 4.0.0 -> 4.1.0 --- gradle/libs.versions.toml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 793ac18f..ea52ce51 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -8,9 +8,9 @@ androidTargetSdk = "36" androidxAppcompat = "1.7.1" androidxCoreKtx = "1.17.0" # Increasing androidxActivityKtx or lifecycleRuntimeKtx will require us to upgrade the minSdk -androidxActivityKtx = "1.12.2" +androidxActivityKtx = "1.12.4" lifecycleRuntimeKtx = "2.10.0" -kotlin = "2.3.0" +kotlin = "2.3.10" kotlinxCoroutines = "1.10.2" material = "1.13.0" androidxStartup = "1.2.0" @@ -18,7 +18,7 @@ androidxStartup = "1.2.0" # --- Google Maps --- # Versions for Google Play Services libraries, which are essential for this sample. androidMapsSdk = "20.0.0" -androidMapsUtils = "4.0.0" +androidMapsUtils = "4.1.0" # --- Testing --- # Versions for testing libraries. From 84aeda061c92604a8340fb02d6c364bfef04624c Mon Sep 17 00:00:00 2001 From: dkhawk <107309+dkhawk@users.noreply.github.com> Date: Fri, 20 Feb 2026 11:07:02 -0700 Subject: [PATCH 2/5] fix: replace plugin ids with aliases and remove redundant kotlin-android plugin --- app/build.gradle.kts | 1 - .../src/main/kotlin/PublishingConventionPlugin.kt | 4 +--- build.gradle.kts | 3 +-- docs/build.gradle.kts | 2 +- gradle.properties | 10 ++++++---- gradle/libs.versions.toml | 3 +-- maps-ktx/build.gradle.kts | 12 ++++++------ maps-utils-ktx/build.gradle.kts | 3 +-- 8 files changed, 17 insertions(+), 21 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 3750b651..6b5032cc 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -16,7 +16,6 @@ plugins { alias(libs.plugins.android.application) - alias(libs.plugins.kotlin.android) alias(libs.plugins.secrets.gradle.plugin) } diff --git a/build-logic/convention/src/main/kotlin/PublishingConventionPlugin.kt b/build-logic/convention/src/main/kotlin/PublishingConventionPlugin.kt index 2fdc51c8..07d6b72f 100644 --- a/build-logic/convention/src/main/kotlin/PublishingConventionPlugin.kt +++ b/build-logic/convention/src/main/kotlin/PublishingConventionPlugin.kt @@ -43,9 +43,7 @@ class PublishingConventionPlugin : Plugin { extensions.configure { configure( AndroidSingleVariantLibrary( - variant = "release", - sourcesJar = true, - publishJavadocJar = true + variant = "release" ) ) diff --git a/build.gradle.kts b/build.gradle.kts index 3533ed77..7e560b1c 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -16,8 +16,7 @@ plugins { alias(libs.plugins.android.application) apply false - alias(libs.plugins.kotlin.android) apply false - id("org.jetbrains.dokka") version "2.1.0" + alias(libs.plugins.dokka) apply false alias(libs.plugins.gradle.maven.publish) apply false alias(libs.plugins.secrets.gradle.plugin) apply false } diff --git a/docs/build.gradle.kts b/docs/build.gradle.kts index 1140413a..8dc9c0da 100644 --- a/docs/build.gradle.kts +++ b/docs/build.gradle.kts @@ -1,6 +1,6 @@ plugins { kotlin("jvm") apply false - id("org.jetbrains.dokka") + alias(libs.plugins.dokka) } dependencies { diff --git a/gradle.properties b/gradle.properties index a246cae5..4d1cedff 100644 --- a/gradle.properties +++ b/gradle.properties @@ -16,7 +16,7 @@ org.gradle.jvmargs=-Xmx1536m # https://developer.android.com/topic/libraries/support-library/androidx-rn android.useAndroidX=true # Automatically convert third-party libraries to use AndroidX -android.enableJetifier=true +# android.enableJetifier=true # Kotlin code style for this project: "official" or "obsolete": kotlin.code.style=official @@ -25,18 +25,20 @@ kotlin.code.style=official signing.keyId= signing.password= signing.secretKeyRingFile= -android.defaults.buildfeatures.buildconfig=true mavenCentralUsername= mavenCentralPassword= # Migration to AGP 8.2.1 android.nonTransitiveRClass=false -android.nonFinalResIds=false # Despite being deprecated, targeting lowest java version is needed to support old Android runtime android.javaCompile.suppressSourceTargetDeprecationWarning=true # Add a property to enable automatic release to Maven Central (optional, but good for CI) # If true, publishToMavenCentral will also close and release the staging repository -mavenCentralAutomaticRelease=false \ No newline at end of file +mavenCentralAutomaticRelease=false +android.uniquePackageNames=false +android.dependency.useConstraints=true +android.r8.strictFullModeForKeepRules=false +android.generateSyncIssueWhenLibraryConstraintsAreEnabled=false \ No newline at end of file diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index ea52ce51..245bcddc 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -7,7 +7,6 @@ androidTargetSdk = "36" androidxAppcompat = "1.7.1" androidxCoreKtx = "1.17.0" -# Increasing androidxActivityKtx or lifecycleRuntimeKtx will require us to upgrade the minSdk androidxActivityKtx = "1.12.4" lifecycleRuntimeKtx = "2.10.0" kotlin = "2.3.10" @@ -32,7 +31,7 @@ truth = "1.4.5" # --- Gradle Plugins --- # Versions for Gradle plugins used in the build process. -agp = "8.13.2" +agp = "9.0.1" dokkaGradlePlugin = "2.1.0" gradleMavenPublishPlugin = "0.36.0" jacocoAndroidGradlePlugin = "0.2.1" diff --git a/maps-ktx/build.gradle.kts b/maps-ktx/build.gradle.kts index 664359db..81d8b90c 100644 --- a/maps-ktx/build.gradle.kts +++ b/maps-ktx/build.gradle.kts @@ -16,9 +16,8 @@ */ plugins { - alias(libs.plugins.kotlin.android) id("android.maps.ktx.PublishingConventionPlugin") - id("org.jetbrains.dokka") + alias(libs.plugins.dokka) } android { @@ -82,7 +81,7 @@ val generateArtifactIdFile = tasks.register("generateArtifactIdFile") { val outputDir = layout.buildDirectory.dir("generated/source/artifactId") val packageName = "com.google.maps.android.ktx.utils.meta" val packagePath = packageName.replace('.', '/') - val outputFile = outputDir.get().file("$packagePath/ArtifactId.kt").asFile + val outputFile = outputDir.get().file("$packagePath/AttributionId.java").asFile outputs.file(outputFile) @@ -90,14 +89,15 @@ val generateArtifactIdFile = tasks.register("generateArtifactIdFile") { outputFile.parentFile.mkdirs() outputFile.writeText( """ - package $packageName + package $packageName; /** * Automatically generated object containing the library's attribution ID. * This is used to track library usage for analytics. */ - public object AttributionId { - public const val VALUE: String = "$attributionId" + public final class AttributionId { + public static final String VALUE = "$attributionId"; + private AttributionId() {} } """.trimIndent() ) diff --git a/maps-utils-ktx/build.gradle.kts b/maps-utils-ktx/build.gradle.kts index 5fbff0f6..3c6a35c2 100644 --- a/maps-utils-ktx/build.gradle.kts +++ b/maps-utils-ktx/build.gradle.kts @@ -15,9 +15,8 @@ */ plugins { - alias(libs.plugins.kotlin.android) id("android.maps.ktx.PublishingConventionPlugin") - id("org.jetbrains.dokka") + alias(libs.plugins.dokka) } android { From 2a358a03d617fe5ca76d4df34051b00561b43f3c Mon Sep 17 00:00:00 2001 From: dkhawk <107309+dkhawk@users.noreply.github.com> Date: Fri, 20 Feb 2026 11:21:11 -0700 Subject: [PATCH 3/5] fix: revert AttributionId.java to ArtifactId.kt --- maps-ktx/build.gradle.kts | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/maps-ktx/build.gradle.kts b/maps-ktx/build.gradle.kts index 81d8b90c..6bdc59bf 100644 --- a/maps-ktx/build.gradle.kts +++ b/maps-ktx/build.gradle.kts @@ -81,7 +81,7 @@ val generateArtifactIdFile = tasks.register("generateArtifactIdFile") { val outputDir = layout.buildDirectory.dir("generated/source/artifactId") val packageName = "com.google.maps.android.ktx.utils.meta" val packagePath = packageName.replace('.', '/') - val outputFile = outputDir.get().file("$packagePath/AttributionId.java").asFile + val outputFile = outputDir.get().file("$packagePath/ArtifactId.kt").asFile outputs.file(outputFile) @@ -89,15 +89,14 @@ val generateArtifactIdFile = tasks.register("generateArtifactIdFile") { outputFile.parentFile.mkdirs() outputFile.writeText( """ - package $packageName; + package $packageName /** * Automatically generated object containing the library's attribution ID. * This is used to track library usage for analytics. */ - public final class AttributionId { - public static final String VALUE = "$attributionId"; - private AttributionId() {} + public object AttributionId { + public const val VALUE: String = "$attributionId" } """.trimIndent() ) From d67910b4801f9e5916fc6d53f3668cdb24b01023 Mon Sep 17 00:00:00 2001 From: dkhawk <107309+dkhawk@users.noreply.github.com> Date: Fri, 20 Feb 2026 11:22:07 -0700 Subject: [PATCH 4/5] fix: clean up gradle.properties --- gradle.properties | 2 -- 1 file changed, 2 deletions(-) diff --git a/gradle.properties b/gradle.properties index 4d1cedff..057d2c70 100644 --- a/gradle.properties +++ b/gradle.properties @@ -15,8 +15,6 @@ org.gradle.jvmargs=-Xmx1536m # Android operating system, and which are packaged with your app's APK # https://developer.android.com/topic/libraries/support-library/androidx-rn android.useAndroidX=true -# Automatically convert third-party libraries to use AndroidX -# android.enableJetifier=true # Kotlin code style for this project: "official" or "obsolete": kotlin.code.style=official From c66186f5819975fd7a1470cc208eb830cba51ae1 Mon Sep 17 00:00:00 2001 From: dkhawk <107309+dkhawk@users.noreply.github.com> Date: Fri, 20 Feb 2026 15:44:43 -0700 Subject: [PATCH 5/5] fix: add dummy testReleaseUnitTest tasks to fix Jacoco on AGP 9.0 --- maps-ktx/build.gradle.kts | 3 +++ maps-utils-ktx/build.gradle.kts | 3 +++ 2 files changed, 6 insertions(+) diff --git a/maps-ktx/build.gradle.kts b/maps-ktx/build.gradle.kts index 6bdc59bf..dd77d4a1 100644 --- a/maps-ktx/build.gradle.kts +++ b/maps-ktx/build.gradle.kts @@ -54,6 +54,9 @@ android { namespace = "com.google.maps.android.ktx" } +// Workaround for com.mxalbert.gradle.jacoco-android plugin crash on AGP 8.0+ +tasks.register("testReleaseUnitTest") {} + dependencies { implementation(libs.kotlin.stdlib) implementation(libs.kotlinx.coroutines.android) diff --git a/maps-utils-ktx/build.gradle.kts b/maps-utils-ktx/build.gradle.kts index 3c6a35c2..5867f4bb 100644 --- a/maps-utils-ktx/build.gradle.kts +++ b/maps-utils-ktx/build.gradle.kts @@ -53,6 +53,9 @@ android { namespace = "com.google.maps.android.ktx.utils" } +// Workaround for com.mxalbert.gradle.jacoco-android plugin crash on AGP 8.0+ +tasks.register("testReleaseUnitTest") {} + dependencies { implementation(libs.kotlin.stdlib) api(libs.android.maps.utils)