我正在尝试将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-dsl的subprojects {}中访问android {}
发布于 2020-01-24 15:52:09
尝试这样做:
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{}
}https://stackoverflow.com/questions/58255544
复制相似问题