您好,我们afterEvaluate在根目录中使用build.gradle来设置一些BuildConfig值并上传档案,但是在更新 gradle 插件之后
com.android.tools.build:gradle:4.0.1
Run Code Online (Sandbox Code Playgroud)
到
com.android.tools.build:gradle:4.1.0
Run Code Online (Sandbox Code Playgroud)
似乎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"
}
}
}
...
}
...
}
Run Code Online (Sandbox Code Playgroud)
看起来我也遇到了同样的问题,但在我们的 Gradle 插件中发现了它,该插件应该在应用程序变体中注入构建配置字段。
我设法使用这样简单的插件在干净的项目上重现这一点,该插件模拟了我们在插件中所做的事情。
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\"")
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
两种情况下的 Gradle 版本都是6.5
所以我只是将 AGP 版本从 更改4.0.2为4.1.0. 在前一种情况(版本 4.0.2)中,它工作正常,并且TEST_CONFIG字段被添加到BuildConfig,在后一种情况下,字段不会添加到BuildConfig
我注意到,当我运行时,两种情况下的构建日志都不同./gradlew :app:generateDebugBuildConfig
对于旧插件版本,当一切正常时输出为:
> 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
Run Code Online (Sandbox Code Playgroud)
对于新插件版本不起作用时:
> 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
Run Code Online (Sandbox Code Playgroud)
所以看起来插件中有一些内部更改导致了这种重新排序,但不幸的是我还没有找到修复程序
更新:我发现这在版本中被破坏了4.1.0-alpha08
更新:已向 Google 报告,等待回复 - Google Issue Tracker
| 归档时间: |
|
| 查看次数: |
4009 次 |
| 最近记录: |