From 058a522c517ea009fbb6ad689a3e7707a53379b8 Mon Sep 17 00:00:00 2001 From: James Rich Date: Tue, 26 May 2026 13:10:39 -0500 Subject: [PATCH] build: Remove vestigial kotlin-android plugin references for AGP 9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit With AGP 9's built-in Kotlin, org.jetbrains.kotlin.android is no longer applied to Android modules. Convention plugin hooks using withPlugin("org.jetbrains.kotlin.android") were dead code — replaced with withPlugin("com.android.application") and withPlugin("com.android.library") which correctly trigger for Android-only modules using built-in Kotlin. - KoinConventionPlugin: split into app + library hooks - AndroidRoomConventionPlugin: use com.android.library hook - KotlinXSerializationConventionPlugin: use app + library hooks - Remove kotlin-android from version catalog and root build.gradle.kts Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .../src/main/kotlin/AndroidRoomConventionPlugin.kt | 2 +- .../src/main/kotlin/KoinConventionPlugin.kt | 12 +++++++++++- .../kotlin/KotlinXSerializationConventionPlugin.kt | 8 +++++++- build.gradle.kts | 1 - gradle/libs.versions.toml | 1 - 5 files changed, 19 insertions(+), 5 deletions(-) diff --git a/build-logic/convention/src/main/kotlin/AndroidRoomConventionPlugin.kt b/build-logic/convention/src/main/kotlin/AndroidRoomConventionPlugin.kt index ee9ce4a52..62d2fdf8d 100644 --- a/build-logic/convention/src/main/kotlin/AndroidRoomConventionPlugin.kt +++ b/build-logic/convention/src/main/kotlin/AndroidRoomConventionPlugin.kt @@ -53,7 +53,7 @@ class AndroidRoomConventionPlugin : Plugin { dependencies { add("kspJvm", roomCompiler) } } - pluginManager.withPlugin("org.jetbrains.kotlin.android") { + pluginManager.withPlugin("com.android.library") { val hasAndroidTest = projectDir.resolve("src/androidTest").exists() dependencies { "implementation"(roomRuntime) diff --git a/build-logic/convention/src/main/kotlin/KoinConventionPlugin.kt b/build-logic/convention/src/main/kotlin/KoinConventionPlugin.kt index b4f2acfbe..427cc3d1f 100644 --- a/build-logic/convention/src/main/kotlin/KoinConventionPlugin.kt +++ b/build-logic/convention/src/main/kotlin/KoinConventionPlugin.kt @@ -48,7 +48,7 @@ class KoinConventionPlugin : Plugin { } } - pluginManager.withPlugin("org.jetbrains.kotlin.android") { + pluginManager.withPlugin("com.android.application") { // If this is *only* an Android module (no KMP plugin) if (!pluginManager.hasPlugin("org.jetbrains.kotlin.multiplatform")) { dependencies { @@ -58,6 +58,16 @@ class KoinConventionPlugin : Plugin { } } + pluginManager.withPlugin("com.android.library") { + // If this is *only* an Android library module (no KMP plugin) + if (!pluginManager.hasPlugin("org.jetbrains.kotlin.multiplatform")) { + dependencies { + add("implementation", koinCore) + add("implementation", koinAnnotations) + } + } + } + pluginManager.withPlugin("org.jetbrains.kotlin.jvm") { // If this is *only* a JVM module (no KMP plugin) if (!pluginManager.hasPlugin("org.jetbrains.kotlin.multiplatform")) { diff --git a/build-logic/convention/src/main/kotlin/KotlinXSerializationConventionPlugin.kt b/build-logic/convention/src/main/kotlin/KotlinXSerializationConventionPlugin.kt index 14fceaec5..9c064b28c 100644 --- a/build-logic/convention/src/main/kotlin/KotlinXSerializationConventionPlugin.kt +++ b/build-logic/convention/src/main/kotlin/KotlinXSerializationConventionPlugin.kt @@ -36,10 +36,16 @@ class KotlinXSerializationConventionPlugin : Plugin { } } - pluginManager.withPlugin("org.jetbrains.kotlin.android") { + pluginManager.withPlugin("com.android.application") { dependencies { "implementation"(serializationLib) } } + pluginManager.withPlugin("com.android.library") { + if (!pluginManager.hasPlugin("org.jetbrains.kotlin.multiplatform")) { + dependencies { "implementation"(serializationLib) } + } + } + pluginManager.withPlugin("org.jetbrains.kotlin.jvm") { dependencies { "implementation"(serializationLib) } } } } diff --git a/build.gradle.kts b/build.gradle.kts index 0cff19056..54603d737 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -26,7 +26,6 @@ plugins { alias(libs.plugins.firebase.crashlytics) apply false alias(libs.plugins.google.services) apply false alias(libs.plugins.room) apply false - alias(libs.plugins.kotlin.android) apply false alias(libs.plugins.kotlin.jvm) apply false alias(libs.plugins.kotlin.multiplatform) apply false alias(libs.plugins.kotlin.parcelize) apply false diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 790c8adef..c8e952d51 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -297,7 +297,6 @@ compose-screenshot = { id = "com.android.compose.screenshot", version.ref = "com compose-compiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" } compose-multiplatform = { id = "org.jetbrains.compose", version.ref = "compose-multiplatform" } koin-compiler = { id = "io.insert-koin.compiler.plugin", version.ref = "koin-plugin" } -kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" } kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" } kotlin-multiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotlin" } kotlin-parcelize = { id = "org.jetbrains.kotlin.plugin.parcelize", version.ref = "kotlin" }