From 8207213243e40b24c94255bf8eac7b4d311e396b Mon Sep 17 00:00:00 2001 From: Omar Ismail Date: Mon, 26 Jan 2026 10:13:41 +0000 Subject: [PATCH] Migrate to new Android Gradle Plugin DSL This replaces the usage of `BaseExtension` with `CommonExtension` and `ApplicationExtension` in `WireBuildPlugin`, updating property accessors for `compileSdk`, `defaultConfig`, and `lint` to match the modern API. FIXES: Issue #3371 TESTED: ./gradlew clean check --- .../wire/buildsupport/WireBuildPlugin.kt | 34 +++++++++++-------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/build-support/src/main/kotlin/com/squareup/wire/buildsupport/WireBuildPlugin.kt b/build-support/src/main/kotlin/com/squareup/wire/buildsupport/WireBuildPlugin.kt index 253ecea812..fcaec9ddcb 100644 --- a/build-support/src/main/kotlin/com/squareup/wire/buildsupport/WireBuildPlugin.kt +++ b/build-support/src/main/kotlin/com/squareup/wire/buildsupport/WireBuildPlugin.kt @@ -15,7 +15,8 @@ */ package com.squareup.wire.buildsupport -import com.android.build.gradle.BaseExtension +import com.android.build.api.dsl.ApplicationExtension +import com.android.build.api.dsl.CommonExtension import com.diffplug.gradle.spotless.SpotlessExtension import com.diffplug.spotless.LineEnding import com.vanniktech.maven.publish.MavenPublishBaseExtension @@ -178,25 +179,28 @@ class WireBuildPlugin : Plugin { private fun Project.configureCommonAndroid() { plugins.withId("com.android.base") { - val android = extensions.getByName("android") as BaseExtension - android.apply { - compileSdkVersion(36) - compileOptions { + project.extensions.getByType(CommonExtension::class.java).apply { + compileSdk = 36 + compileOptions.apply { sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 } - defaultConfig { - if (project.name.contains("app")) { - applicationId("$group.${project.name}".replace(oldChar = '-', newChar = '.')) + defaultConfig.minSdk { version = release(28) } + + if (this is ApplicationExtension) { + defaultConfig.apply { + if (project.name.contains("app")) { + applicationId = "$group.${project.name}".replace(oldChar = '-', newChar = '.') + } + targetSdk = 33 + versionCode = 1 + versionName = "1.0" } - minSdk = 28 - targetSdk = 33 - versionCode = 1 - versionName = "1.0" } - lintOptions { - isCheckDependencies = true - isCheckReleaseBuilds = false // Full lint runs as part of 'build' task. + + lint.apply { + checkDependencies = true + checkReleaseBuilds = false // Full lint runs as part of 'build' task. } } }