首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安卓系统上的第7级:使用AGP 7的新变体api添加BuildConfigField

安卓系统上的第7级:使用AGP 7的新变体api添加BuildConfigField
EN

Stack Overflow用户
提问于 2021-08-31 15:31:39
回答 2查看 351关注 0票数 2

我过去常常在我的安卓项目中添加一些属性给BuildConfig,这取决于构建变量和其他逻辑。

使用Gradle 7和AGP 7.0.1,我不知道如何在gradle文件中的BuildConfig闭包中添加一个onVariants字段:

代码语言:javascript
复制
androidComponents {
    onVariants(selector().withBuildType("release"), {
      ...here...
    })
}

我试过几件事,比如:

代码语言:javascript
复制
it.buildConfigFields.put("MY_KEY", BuildConfigField("String", "\"$someSecretValue\"", null))

代码语言:javascript
复制
it.addBuildConfigField("MY_KEY", "\"$someSecretValue\"", "key description")

它只适用于kotlin中的构建文件。

我如何使用AGP 7的变体Api来完成这个任务?

这是我想迁移的原始代码:

代码语言:javascript
复制
android.applicationVariants
   .matching { v -> ['release'].contains(v.name) }
   .all { variant ->
     variant.buildConfigField('String', 'MY_KEY', '"$someSecretValue"')
   }

任何建议都是非常感谢的!

EN

回答 2

Stack Overflow用户

发布于 2021-12-28 10:46:49

代码语言:javascript
复制
it.buildConfigFields.put("MY_KEY", BuildConfigField("String", "\"$someSecretValue\"", null))

==>新BuildConfigField

代码语言:javascript
复制
it.buildConfigFields.put("MY_KEY", new BuildConfigField("String", "\"$someSecretValue\"", null))
票数 2
EN

Stack Overflow用户

发布于 2022-02-25 13:05:33

代码语言:javascript
复制
def buildConfigTask = project.tasks.register("buildConfigTask")
androidComponents {
   onVariants(selector().withBuildType("release"), { variant ->
     variant.buildConfigFields.put("MY_KEY", buildConfigTask.map {
              new BuildConfigField("String", "\"MY_KEY_VALUE\"")
            })
   })
}

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69001506

复制
相关文章

相似问题

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