参考 android重新编译res,使用 gradle 在编译时动态设置 Android resValue / BuildConfig / Manifes中<meta-data>变量的值...
android {compileSdkVersion project.ext.android.compileSdkVersiondefaultConfig {minSdkVersion project.ext.android.minSdkVersiontargetSdkVersion project.ext.android.targetSdkVersionmultiDexEnabled truendk {abiFilters "armeabi", "armeabi-v7a"}}buildTypes {release {minifyEnabled falseproguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'resValue("string", "app_token","123")}debug{signingConfig release.signingConfigresValue("string", "app_token", "666")buildConfigField("String","Myfavite", "\"apple\"")}}
在module的gradle文件里添加 resValue,就可以在java文件获取到这个字段,如下:
tvLogout.setText(R.string.app_token);
添加的 buildConfigField("String","Myfavite", "\"apple\"") 则生成在BuildConfig.java文件里,如下:
public final class BuildConfig {public static final boolean DEBUG = Boolean.parseBoolean("true");public static final String APPLICATION_ID = "...";public static final String BUILD_TYPE = "debug";public static final String FLAVOR = "dev";public static final int VERSION_CODE = 1;public static final String VERSION_NAME = "1.0.0";// Fields from build type: debugpublic static final String Myfavite = "apple";
}