From b58633edfe5f9cde32c1bf91c2812ab23fec4b6d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=96=E7=95=8C?= Date: Sat, 17 Jan 2026 14:36:29 +0800 Subject: [PATCH] Upgrade to Android Gradle Plugin 9.0.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Update AGP 8.13.2 → 9.0.0, Gradle 8.14.3 → 9.1.0 - Migrate kotlin-android/parcelize to full plugin names - Add buildConfig = true (AGP 9.0 defaults false) - Migrate deprecated srcDirs() to directories API - Update gradle-play-publisher 3.12.1 → 3.13.0 - Add android.newDsl=false workaround for play-publisher --- app/build.gradle.kts | 17 +++++++++-------- build.gradle.kts | 7 ++++--- gradle.properties | 6 ++++-- gradle/wrapper/gradle-wrapper.properties | 2 +- 4 files changed, 18 insertions(+), 14 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index cc7e170..abd8d3f 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -10,8 +10,8 @@ import java.util.Properties plugins { id("com.android.application") - id("kotlin-android") - id("kotlin-parcelize") + id("org.jetbrains.kotlin.android") + id("org.jetbrains.kotlin.plugin.parcelize") id("com.google.devtools.ksp") id("org.jetbrains.kotlin.plugin.compose") id("org.jetbrains.kotlin.plugin.serialization") @@ -118,16 +118,16 @@ android { sourceSets { getByName("play") { - java.srcDirs("src/minApi23/java") - aidl.srcDirs("src/minApi23/aidl") + java.directories.add("src/minApi23/java") + aidl.directories.add("src/minApi23/aidl") } getByName("other") { - java.srcDirs("src/minApi23/java", "src/github/java") - aidl.srcDirs("src/minApi23/aidl") + java.directories.addAll(listOf("src/minApi23/java", "src/github/java")) + aidl.directories.add("src/minApi23/aidl") } getByName("otherLegacy") { - java.srcDirs("src/minApi21/java", "src/github/java") - aidl.srcDirs("src/minApi23/aidl") + java.directories.addAll(listOf("src/minApi21/java", "src/github/java")) + aidl.directories.add("src/minApi23/aidl") } } @@ -149,6 +149,7 @@ android { viewBinding = true aidl = true compose = true + buildConfig = true } packaging { diff --git a/build.gradle.kts b/build.gradle.kts index 9ca487d..cd5e037 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,9 +1,10 @@ plugins { - id("com.android.application") version "8.13.2" apply false - id("com.android.library") version "8.13.2" apply false + id("com.android.application") version "9.0.0" apply false + id("com.android.library") version "9.0.0" apply false id("org.jetbrains.kotlin.android") version "2.2.0" apply false + id("org.jetbrains.kotlin.plugin.parcelize") version "2.2.0" apply false id("com.google.devtools.ksp") version "2.2.0-2.0.2" apply false - id("com.github.triplet.play") version "3.12.1" apply false + id("com.github.triplet.play") version "3.13.0" apply false id("org.jetbrains.kotlin.plugin.compose") version "2.2.0" apply false id("org.jetbrains.kotlin.plugin.serialization") version "2.2.0" apply false id("org.jlleitschuh.gradle.ktlint") version "13.1.0" apply false diff --git a/gradle.properties b/gradle.properties index bf35f24..ceb589a 100644 --- a/gradle.properties +++ b/gradle.properties @@ -21,5 +21,7 @@ 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 -android.defaults.buildfeatures.buildconfig=true -android.nonFinalResIds=false \ No newline at end of file +# Workaround for gradle-play-publisher not supporting AGP 9.0 yet +# See https://github.com/Triple-T/gradle-play-publisher/issues/1175 +android.newDsl=false +android.builtInKotlin=false \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index cfc2446..477070d 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,7 +1,7 @@ #Mon Jul 07 14:05:29 CST 2025 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.1.0-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME