首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >gradle kotlin-dsl将android {}移到根项目build.gradle.kts的子项目{}中

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

Stack Overflow用户
提问于 2019-10-06 16:31:42
回答 1查看 481关注 0票数 2

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

使用gradle groovy时,我可以移动。但在gradle kotlin-dsl中。似乎不可能在subprojects {}中引用android

我试过了

代码语言:javascript
复制
subprojects {
    afterEvaluate {
       if (project.plugins.hasPlugin(Plugins.kotlinAndroidApplication)) {
          project.android {

       }
    }
}

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

有没有办法在适用于kotlin-dslsubprojects {}中访问android {}

EN

回答 1

Stack Overflow用户

发布于 2020-01-24 15:52:09

尝试这样做:

代码语言:javascript
复制
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{}
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58255544

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档