Android build.gradle配置buildConfigField的方法

在配置buildConfigField的时候遇到一些问题,因为不常用,特此记录一下。 首先来看看buildConfigeField的用法

arduino 复制代码
buildTypes {
    debug {
        buildConfigField "String", "BUILD_DATE", "202403291425"
    }
    release {
        buildConfigField "String", "BUILD_DATE", "202403291425"
    }
}

上面代码不难理解就是定义配置参数的名字"BUILD_DATE"、类型"String"和值"202403291425"。重新用小锤子make一下,你会发现自动生产的配置参数报错了:

"202403291425"这段看着像字符串的字符串竟然自动转成了一串数字(虽然长度也超出了int的长度),但是我们声明的是String,这明显不符合我们的预期。仔细查了下资料才发现正确引用方法应该是这样的

dart 复制代码
buildTypes {
    debug {
        // 单引号写法
        buildConfigField 'String', 'string1', '\"value1\"'
        // 双引号写法
        buildConfigField "String", "string2", "\"value2\""
        // 单双引号的写法,最简洁不用转义,推荐该写法
        buildConfigField 'String', 'string3', '"value3"'
        // 如果是引用其他方法或者参数可以这么写
        buildConfigField 'String', 'string4,"\"${defaultConfig.versionName}\""
        buildConfigField 'String', 'string4,"\"${getDate()}\""
 
        // 以下两种写法都没转义,会报错
        buildConfigField 'String', 'string6', 'value6'
        buildConfigField "String", "string7", "value7"
    }
}

所以其中一种正确写法是

sql 复制代码
buildTypes {
    debug {
        buildConfigField "String", "BUILD_DATE", "\"202403291425\""
    }
    release {
        buildConfigField "String", "BUILD_DATE", "\"202403291425"\"
    }
}

这次就生成正确了

在代码中引用

ini 复制代码
mBuildTimeTv.setText(BuildConfig.BUILD_DATE);

这样就大功告成了。 这是我第一次写掘金文章,希望自己以后坚持下去。

相关推荐
666xiaoniuzi2 小时前
深入理解 C 语言中的内存操作函数:memcpy、memmove、memset 和 memcmp
android·c语言·数据库
沐言人生6 小时前
Android10 Framework—Init进程-8.服务端属性文件创建和mmap映射
android
沐言人生6 小时前
Android10 Framework—Init进程-9.服务端属性值初始化
android·android studio·android jetpack
沐言人生7 小时前
Android10 Framework—Init进程-7.服务端属性安全上下文序列化
android·android studio·android jetpack
追光天使7 小时前
【Mac】和【安卓手机】 通过有线方式实现投屏
android·macos·智能手机·投屏·有线
小雨cc5566ru7 小时前
uniapp+Android智慧居家养老服务平台 0fjae微信小程序
android·微信小程序·uni-app
一切皆是定数8 小时前
Android车载——VehicleHal初始化(Android 11)
android·gitee
一切皆是定数8 小时前
Android车载——VehicleHal运行流程(Android 11)
android
problc8 小时前
Android 组件化利器:WMRouter 与 DRouter 的选择与实践
android·java
图王大胜9 小时前
Android SystemUI组件(11)SystemUIVisibility解读
android·framework·systemui·visibility