diff --git a/app/build.gradle.kts b/app/build.gradle.kts index d5309581..e0b8c848 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) alias(libs.plugins.kotlinx.serialization) } @@ -51,10 +50,6 @@ android { testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" } - adbOptions { - installOptions("-g", "-r") - } - buildFeatures { buildConfig = true } diff --git a/build.gradle.kts b/build.gradle.kts index 39910dd2..424137b8 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -14,9 +14,14 @@ * limitations under the License. */ +buildscript { + dependencies { + classpath(libs.kotlin.gradle.plugin) + } +} + plugins { alias(libs.plugins.android.application) apply false - alias(libs.plugins.kotlin.android) apply false alias(libs.plugins.dokka) alias(libs.plugins.gradle.maven.publish) apply false alias(libs.plugins.secrets.gradle.plugin) apply false diff --git a/gradle.properties b/gradle.properties index 01f8cab6..881b7646 100644 --- a/gradle.properties +++ b/gradle.properties @@ -25,7 +25,6 @@ kotlin.code.style=official signing.keyId= signing.password= signing.secretKeyRingFile= -android.defaults.buildfeatures.buildconfig=true mavenCentralUsername= mavenCentralPassword= @@ -39,4 +38,10 @@ 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.defaults.buildfeatures.resvalues=true +android.sdk.defaultTargetSdkToCompileSdkIfUnset=false +android.usesSdkInManifest.disallowed=false +android.dependency.useConstraints=true +android.r8.strictFullModeForKeepRules=false +android.r8.optimizedResourceShrinking=false \ No newline at end of file diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 03952cf8..3a25ab28 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,16 +1,16 @@ [versions] # --- Core Android & Kotlin --- # These are the fundamental versions for building the Android app. -androidCompileSdk = "36" +androidCompileSdk = "37" androidMinSdk = "23" androidTargetSdk = "36" androidxAppcompat = "1.7.1" -androidxCoreKtx = "1.18.0" +androidxCoreKtx = "1.19.0" # Increasing androidxActivityKtx or lifecycleRuntimeKtx will require us to upgrade the minSdk androidxActivityKtx = "1.13.0" lifecycleRuntimeKtx = "2.10.0" -kotlin = "2.3.21" +kotlin = "2.4.0" kotlinxCoroutines = "1.11.0" material = "1.14.0" androidxStartup = "1.2.0" @@ -18,7 +18,7 @@ androidxStartup = "1.2.0" # --- Google Maps & Location --- # Versions for Google Play Services libraries, which are essential for this sample. androidMapsSdk = "20.0.0" -androidMapsUtils = "4.4.0" +androidMapsUtils = "4.5.0" playServicesLocation = "21.3.0" # --- Testing --- @@ -35,7 +35,7 @@ truth = "1.4.5" # --- Gradle Plugins --- # Versions for Gradle plugins used in the build process. -agp = "8.13.2" +agp = "9.2.1" dokkaGradlePlugin = "2.2.0" gradleMavenPublishPlugin = "0.36.0" jacocoAndroidGradlePlugin = "0.2.1" @@ -99,6 +99,7 @@ uiautomator = { group = "androidx.test.uiautomator", name = "uiautomator", versi [plugins] # --- Core Gradle Plugins --- android-application = { id = "com.android.application", version.ref = "agp" } + kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" } kotlinx-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" } diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 6a38a8ce..c61a118f 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,7 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionSha256Sum=a17ddd85a26b6a7f5ddb71ff8b05fc5104c0202c6e64782429790c933686c806 -distributionUrl=https\://services.gradle.org/distributions/gradle-9.1.0-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.4.1-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/maps-ktx/build.gradle.kts b/maps-ktx/build.gradle.kts index 9bfb310e..601ee61f 100644 --- a/maps-ktx/build.gradle.kts +++ b/maps-ktx/build.gradle.kts @@ -16,7 +16,6 @@ */ plugins { - alias(libs.plugins.kotlin.android) id("android.maps.ktx.PublishingConventionPlugin") id("org.jetbrains.dokka") } @@ -53,7 +52,6 @@ android { targetCompatibility = JavaVersion.VERSION_1_8 } - sourceSets["main"].java.srcDir("build/generated/source/artifactId") kotlin { compilerOptions { @@ -69,6 +67,15 @@ android { namespace = "com.google.maps.android.ktx" } +androidComponents { + onVariants { variant -> + variant.sources.kotlin?.addStaticSourceDirectory("build/generated/source/artifactId") + } +} + +// Workaround for com.mxalbert.gradle.jacoco-android plugin crash on AGP 9.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 5535b0b6..0700ce43 100644 --- a/maps-utils-ktx/build.gradle.kts +++ b/maps-utils-ktx/build.gradle.kts @@ -15,7 +15,6 @@ */ plugins { - alias(libs.plugins.kotlin.android) id("android.maps.ktx.PublishingConventionPlugin") id("org.jetbrains.dokka") } @@ -68,6 +67,9 @@ android { namespace = "com.google.maps.android.ktx.utils" } +// Workaround for com.mxalbert.gradle.jacoco-android plugin crash on AGP 9.0+ +tasks.register("testReleaseUnitTest") {} + dependencies { implementation(libs.kotlin.stdlib) api(libs.android.maps.utils)