android - 在buildSrc中访问ApplicationVariants

标签 android gradle kotlin gradle-kotlin-dsl

在我的应用程序中,我管理Gradle中的所有buildSrc内容。其中之一是buildTypes。我能够访问buildTypes提供的所有属性。但是,我无法访问applicationVariants中的buildSrc。有什么办法吗?

Sample code block in buildSrc/BuildTypes.kt


internal object Debug : BuildTypeCreator {
    override val name = InternalBuildType.DEBUG

    override fun create(
        namedDomainObjectContainer: NamedDomainObjectContainer<BuildType>,
        project: Project,
        isLibrary: Boolean,
        closure: BuildType.() -> Unit
    ): BuildType {
        return namedDomainObjectContainer.maybeCreate(name).apply {
            if (isLibrary) {
                versionNameSuffix = "-dev-${project.gitSha}"
            } else {
                applicationIdSuffix = ".dev"
            }
            isTestCoverageEnabled = true
            isMinifyEnabled = false
            isDebuggable = true
            closure.invoke(this)
        }
    }
}

Sample code block in app.gradle.kts(which I want to achieve the same in buildSrc)


applicationVariants.all { -> **This is not accessible in buildSrc**
                if (buildType.name == getByName("release").name) {
                    outputs.all { output: BaseVariantOutput ->
                        val outputImpl = output as BaseVariantOutputImpl
                        outputImpl.outputFileName = "calendar-view.apk"
                        true
                    }
                }
            }

提前致谢。

最佳答案

好的,我通过传递参数domainObjectSet: DomainObjectSet<ApplicationVariant>解决了它

关于android - 在buildSrc中访问ApplicationVariants,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59684596/

相关文章:

kotlin - 是否可以为 Kotlin 中的 List 提供泛型类型约束?

Android Flipboard 样式库

java - (Json 与 MySQL)E/AndroidRuntime(338) :

gradle - 如何在 Gradle 中使用 JUnit 5 控制台启动器标志

Android:product flavor、applicationId(包名)和manifest

maven - build.gradle文件中应该包含什么以支持标准groovy库的导入

constructor - Kotlin 数据类可以有多个构造函数吗?

kotlin - 如何部分验证数据类作为函数参数?

android - 如何将 PDFBox 添加到 Android 项目或建议替代方案

Android - 无法解析父类(super class)