Android中Kotlin DSL设置的extra属性未生成到BuildConfig问题
为什么android.extra里的version没出现在BuildConfig中?
android.extra本质上只是Gradle构建脚本内部的属性存储容器,它的作用是在构建脚本的不同模块或配置块之间共享数据,完全不会自动将其中的属性生成到BuildConfig类里。
BuildConfig类里的字段都是需要通过Gradle专门的配置项显式声明才会生成的,默认只包含DEBUG、BUILD_TYPE这类构建相关的系统字段。
如果你想把version属性加到BuildConfig里,得用buildConfigField来配置,比如:
android { // 可以保留extra里的设置,方便脚本内部复用 extra.apply { set("version", "AN-1.15") } defaultConfig { // 显式声明要生成的BuildConfig字段 buildConfigField("String", "VERSION", "\"${extra["version"]}\"") } }
注意这里的第三个参数,字符串类型的值需要用转义引号包裹,不然Gradle会把它当成变量名处理。配置完成后重新同步项目,BuildConfig里就会出现public static final String VERSION = "AN-1.15";这个字段了。
内容的提问来源于stack exchange,提问作者WISHY
相关产品推荐
相关产品推荐

