如何在build.gradle.kts中正确应用com.android.application插件?
错误根因
你的com.android.application插件应用写法本身符合Gradle Kotlin DSL语法规范,报错的核心原因是:Gradle解析plugins块的插件时,默认仅从Gradle官方插件中心检索资源,而com.android.application属于Google官方提供的插件,存储在Google私有maven仓库中,你的配置中未给plugins块的解析配置Google仓库源。
你在当前build.gradle.kts中声明的buildscript.repositories仅作用于构建脚本本身的classpath依赖拉取,同级的repositories仅作用于项目业务依赖拉取,二者都不会作用于plugins块的插件检索。
修复方案
步骤1:配置settings.gradle.kts插件检索仓库
在项目根目录的settings.gradle.kts头部添加pluginManagement配置,声明Google仓库作为插件检索源:
pluginManagement { repositories { // 优先从Google仓库拉取安卓相关插件 google() mavenCentral() gradlePluginPortal() } } // 保留你原来的dependencyResolutionManagement等其他配置即可
步骤2:优化build.gradle.kts插件声明
因为你已经在buildscript.dependencies中声明了安卓Gradle插件的classpath,plugins块中可以省略版本号,避免版本不一致冲突,修改后的plugins块如下:
plugins { `maven-publish` `java-gradle-plugin` `kotlin-dsl` id("com.android.application") kotlin("android") id("io.gitlab.arturbosch.detekt") version ("1.18.1") }
修改完成后重新同步Gradle即可正常加载插件。
注意:如果当前模块是Gradle插件开发模块,不可同时应用
com.android.application插件,二者的构建环境存在冲突,安卓应用插件仅能用于安卓应用/库模块。
内容的提问来源于stack exchange,提问作者jitendra kumar
相关产品推荐
相关产品推荐

