android 自定义配置文件

首先在最外层添加build_config.gradle配置文件。
文件内容可以如下:

ext {
    //32位
    configField = [
            "updateUrl"      : "\"downloadUrl32\"",
            "abiFilters"     : "armeabi-v7a",
            "apkReleaseName" : "app.apk",
            "apkDebugName"   : "app_debug.apk"
    ]
}

在最外层build.gradle中添加 apply from: 'build_config.gradle':

apply from: 'build_config.gradle'
buildscript {
    repositories {
        google()
        jcenter()
    }
......忽略以下内容......

在应用的module中build.gradle使用以上添加的配置属性:

buildTypes {
        debug {
            buildConfigField "String", "updateUrl", rootProject.ext.configField["updateUrl"]
            signingConfig signingConfigs.config
        }
        release {
            buildConfigField "String", "updateUrl", rootProject.ext.configField["updateUrl"]
            signingConfig signingConfigs.config
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }

在程序中使用添加的"updateUrl"属性:

public class Test {
    String urlString= BuildConfig.updateUrl;
}

注意的是:
代码中,通过buildConfigField使用String时,请注意"引号"的使用:
例如:

//build_config.gradle
ext {
    //32位
    configField = [
            "updateUrl"      : "downloadUrl32"
    ]
}

在build.gradle中,

buildTypes {
        debug {
            buildConfigField "String", "updateUrl", rootProject.ext.configField["updateUrl"]
        }
        release {
            buildConfigField "String", "updateUrl", rootProject.ext.configField["updateUrl"]
        }
    }

检查,生成文件BuildConfig.java

public final class BuildConfig {
  // Field from build type: debug
  public static final String updateUrl = downloadUrl32;
}

直接可以看出 downloadUrl32 没有带引号,不符合string赋值原则。执行程序会出现错误。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容