gpt4 book ai didi

android - gradle kotlin-dsl 将 android {} 移动到根项目 build.gradle.kts 中的子项目 {}

转载 作者:行者123 更新时间:2023-12-03 03:17:24 25 4
gpt4 key购买 nike

我正在尝试将 android {}(单个模块)移动到 subprojects{}(根项目 build.gradle.kts) (避免在每个模块中重复相同的 android{})

我在使用 gradle groovy 时能够移动。但在 gradle kotlin-dsl 中。在 subprojects{}

中引用 android 似乎是不可能的

我试过了

subprojects {
afterEvaluate {
if (project.plugins.hasPlugin(Plugins.kotlinAndroidApplication)) {
project.android {

}
}
}

但总是得到这个错误:Unresolved reference: android

有什么方法可以访问 kotlin-dslsubprojects{} 中的 android{}

最佳答案

试试这个方法:

subprojects {
project.plugins.configure(project)
}

fun PluginContainer.configure(project: Project) {
whenPluginAdded {
if (this is BasePlugin) {
project.extensions
.getByType<BaseExtension>()
.apply {
applyAndroidCommons()
}
}
}
}

fun BaseExtension.applyAndroidCommons() {
compileSdkVersion(BuildConfig.COMPILE_SDK)

defaultConfig {
minSdkVersion(BuildConfig.MIN_SDK)
targetSdkVersion(BuildConfig.TARGET_SDK)
}

// other stuff you would put into android{}
}

关于android - gradle kotlin-dsl 将 android {} 移动到根项目 build.gradle.kts 中的子项目 {},我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58255544/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com