AS中buildConfigField使用

配置buildConfigField

在开发中经常分测试环境和正式环境,每次发布版本总是要修改服务器地址或者端口号。其实可以在build.gradle中为测试环境和正式环境配置不同的服务地址,在编译的时候会自动根据当前的buildType选择不同的服务地址。

android {
    buildTypes {
        debug {
            buildConfigField 'String', 'domain', '"http://192.168.0.1:5555/MyProject/"'
        }
        release {
            buildConfigField 'String', 'domain', '"http://192.168.0.1:8888/MyProject/"'
        }
    }
}

在自动生成的类BuildConfig中会新增domain字段,且在不同的buildType环境下的值是不一样的,如下:

测试环境的值

public final class BuildConfig {
    public static final boolean DEBUG = Boolean.parseBoolean("true");
    public static final String domain = "http://192.168.0.1:5555/MyProject/";
}

生产环境的值

public final class BuildConfig {
    public static final boolean DEBUG = Boolean.parseBoolean("true");
    public static final String domain = "http://192.168.0.1:8888/MyProject/";
}

使用BuildConfig

直接用BuildConfig调用,例如:

String url = BuildConfig.domain;

注意事项

由于我们这里介绍的buildConfigField是String类型,所以要注意以下例子,前三种写法都是可以的,但是后两种是错误的

buildTypes {
    debug {
        // 单引号写法
        buildConfigField 'String', 'string1', '\"string1value\"'
        // 双引号写法
        buildConfigField "String", "string2", "\"string2value\""
        // 单双引号的写法,最简洁不用转义,推荐该写法
        buildConfigField 'String', 'string3', '"string3value"'
        // 以下两种写法都没转义,会报错
        buildConfigField 'String', 'string4', 'string4value'
        buildConfigField "String", "string5", "string5value"
    }
}

结果如下,可以看到最后两个生成的值没加双引号,不是字符串会报错,在IDE中会标红显示错误。

public final class BuildConfig {
    public static final String string1 = "string1value";
    public static final String string2 = "string2value";
    public static final String string3 = "string3value";
    public static final String string4 = string4value; // IDE中string4value的颜色是红色
    public static final String string5 = string5value; // IDE中string5value的颜色是红色
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容