Android笔记之强大的buildConfigField
2024-09-04 14:47:22
在进行项目开发或维护时,经常会遇到调试和发布所用到的参数值不一致的情况
例如,服务器会分测试和正式,为了能方便地更改(自动更换)服务器地址,buildConfigField就派上用场了
以前都是手动更改的,极易出错T_T
buildConfigField语法如下
buildConfigField "TypeName", "FieldName", "FieldValue"
示例
build.gradle (Module: app)
apply plugin: 'com.android.application' android {
compileSdkVersion 28
defaultConfig {
applicationId "com.bu_ish.debug_release_test"
minSdkVersion 19
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
buildConfigField "String", "TextToShow", "\"当前处于发布模式\""
}
debug {
buildConfigField "String", "TextToShow", "\"当前处于调试模式\""
}
}
} dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}
Gradle会自动生成BuildConfig.java
BuildConfig中包含了字段TextToShow
生成的Debug版BuildConfig如下
/**
* Automatically generated file. DO NOT MODIFY
*/
package com.bu_ish.debug_release_test; public final class BuildConfig {
public static final boolean DEBUG = Boolean.parseBoolean("true");
public static final String APPLICATION_ID = "com.bu_ish.debug_release_test";
public static final String BUILD_TYPE = "debug";
public static final String FLAVOR = "";
public static final int VERSION_CODE = 1;
public static final String VERSION_NAME = "1.0";
// Fields from build type: debug
public static final String TextToShow = "当前处于调试模式";
}
在使用BuildConfig.TextToShow时,Gradle就帮我们自动地完成了调试值"当前处于调试模式"和发布值"当前处于发布模式"的切换
最新文章
- 12,SFDC 管理员篇 - 页面配置
- C#抽象类
- 微信自定义菜单view类型获取openid访问网页
- Teehan &; Lax 发布 iOS 7 GUI PSD 模板,免费下载
- Java学习-007-Log4J 日志记录配置文件详解及实例源代码
- 限制<;input>;输入内容 只允许数字 或者 字母
- CROSSTOOL-NG建立交叉编译工具链
- 理解Windows中的路由表和默认网关
- Java网络编程(UDP协议:发送端)
- jQuery按钮复制文本内容
- google官方提供的编译android源码的环境初始化,Initializing a Build Environment
- C#中弹出新窗口
- python调用ice接口
- VS2010 简单实用快捷键
- 一张图告诉你移动Web前端所有技术(工程化、预编译、自动化)
- zoj 1889 ones 数学
- DB---数据库中Schema的理解
- linux 上安装多个不同版本的mysql 踩的坑
- 其他综合-内网下Yum仓库搭建配置
- 【转载】CSS3 文字溶解效果
热门文章
- Linux 之 Xunsearch(2)
- HDU 2767:Proving Equivalences(强连通)
- python pyd 加密相关
- 1076. Wifi密码 (15)【模拟】
- putnik
- Ubuntu 16.04常用软件清单
- java后4位打成*显示
- 【sublime text3】破解 最近破解码 /激活成功,但是过一会就提示激活码失效的 Build3143
- webpack入门(六)——html-webpack-plugin
- Win7安装软件,界面上中文显示乱码的解决方案