在配置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);
这样就大功告成了。 这是我第一次写掘金文章,希望自己以后坚持下去。