将android gradle插件更新为4.1.0后,afterEvaluate不工作

将android gradle插件更新为4.1.0后,afterEvaluate不工作,android,gradle,Android,Gradle,您好,我们在根build.gradle中使用afterEvaluate来设置一些BuildConfig值并上传存档,但是在从 com.android.tools.build:gradle:4.0.1 到 似乎根本没有触发afterEvaluate 你知道如何解决这个问题吗 build.gradle如下所示 subprojects{ ... android{ ... afterEvaluate { project -> buildTypes.each { bui

您好,我们在根
build.gradle
中使用
afterEvaluate
来设置一些
BuildConfig
值并上传存档,但是在从

com.android.tools.build:gradle:4.0.1

似乎根本没有触发
afterEvaluate

你知道如何解决这个问题吗

build.gradle
如下所示

subprojects{
...
 android{
 ...
    afterEvaluate { project ->
        buildTypes.each { buildType ->
            final String suffix = buildType.name == 'release' ? '' : ".${buildType.name}"

            project.libraryApplicationIds.each { String constant, String libAppId ->
                buildType.buildConfigField "String", constant, "\"$libAppId$suffix\""
                buildType.manifestPlaceholders[constant] = "$libAppId$suffix"
            }
        }
    }
 ...
 }
...
}

看起来我也遇到过同样的问题,但在我们的Gradle插件中发现了它,该插件假定在应用程序变体中注入构建配置字段

我用这样一个简单的插件在clean项目上复制了这个插件,它模拟了我们在插件中所做的事情

class MyPlugin: Plugin<Project> {

    override fun apply(project: Project) {
        project.afterEvaluate {
            val androidExtension = project.extensions.getByType(AppExtension::class.java)
            androidExtension.applicationVariants.forEach {
                System.out.println("Adding build config for ${it.name}")
                it.buildConfigField("String", "TEST_CONFIG", "\"TEST\"")
            }
        }
    }

}
对于无法使用的新插件版本:

> Configure project :app

> Task :app:preBuild UP-TO-DATE
> Task :app:preDebugBuild UP-TO-DATE
Adding build config for debug
Adding build config for release
> Task :app:generateDebugBuildConfig
因此,看起来插件中有一些内部更改导致了这种重新排序,但不幸的是,我还没有找到修复方法

更新:我发现在版本
4.1.0-alpha08

更新:


更新:向Google报告,等待响应-

添加您的
build.gradle
文件的更多部分,特别是
afterEvaluate
闭包中的部分。@LukasKörfer补充说,现在我已经重写代码,不在afterEvaluate中设置构建配置字段。在gradle构建脚本的其他地方正常设置它们对我仍然有效
> Configure project :app

> Task :app:preBuild UP-TO-DATE
> Task :app:preDebugBuild UP-TO-DATE
> Task :app:generateDebugBuildConfig
Adding build config for debug
Adding build config for release
> Configure project :app

> Task :app:preBuild UP-TO-DATE
> Task :app:preDebugBuild UP-TO-DATE
Adding build config for debug
Adding build config for release
> Task :app:generateDebugBuildConfig