将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