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);

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

相关推荐
用户2018792831676 分钟前
故事:你的“急急急快递站”(PriorityQueue<E>)
android
烈焰晴天23 分钟前
新发布的一款使用ReactNative新架构加载Svga动画的开源插件[android/ios]
android·react native·ios
道之所在2 小时前
UE5.6源码安卓打包报错
android·ue5
用户2018792831673 小时前
贪心算法故事:拖延症小明的作业危机
android
人帅是非多3 小时前
Spanny-使用DSL优雅构建Android富文本库
android·github
liang_jy3 小时前
Activity 启动流程(六)—— Activity 窗口显示
android·面试·源码
RichardLai884 小时前
[Flutter 进阶] - 掌握StatefulWidget的艺术
android·前端·flutter
墨狂之逸才4 小时前
为什么Thread要接受一个Runnable对象
android
倚楼听雨24 小时前
kotlin协程
android
倚楼听雨24 小时前
kotlin设计模式-创造型
android