配置文件gradle.propertles
android.useAndroidX=true
android.enableJetifier=true
android.useDeprecatedNdk=true
#android.enableAapt2=false
#applicationId
MYAPP_RELEASE_STORE_FILE=xx.jks
MYAPP_RELEASE_KEY_ALIAS=key0
MYAPP_RELEASE_STORE_PASSWORD=123465
MYAPP_RELEASE_KEY_PASSWORD=123465
#友盟信息配置
UMENG_APPKEY=5dfae3xxxxxxxx00
UMENG_APPSECRET=8812a8xxxxxxxc317cbd
在app的build.gradle中配置全局字段
.java中使用需要使用buildConfigField进行配置
.xml中使用需要使用resValue进行配置
buildTypes {
debug {
signingConfig signingConfigs.debug
buildConfigField("String", "umenAppkey", "\"${UMENG_APPKEY}\"")
resValue("string", "umenAppkey", "${UMENG_APPKEY}")
buildConfigField("String", "umenAppsecret", "\"${UMENG_APPSECRET}\"")
resValue("string", "umenAppsecret", "${UMENG_APPSECRET}")
}
release {
// Caution! In production, you need to generate your own keystore file.
// see https://facebook.github.io/react-native/docs/signed-apk-android.
signingConfig signingConfigs.release
minifyEnabled enableProguardInReleaseBuilds
proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
buildConfigField("String", "umenAppkey", "\"${UMENG_APPKEY}\"")
resValue("string", "umenAppkey", "${UMENG_APPKEY}")
buildConfigField("String", "umenAppsecret", "\"${UMENG_APPSECRET}\"")
resValue("string", "umenAppsecret", "${UMENG_APPSECRET}")
注意buildConfigField(“数据类型”,“变量字段”,“gradle.propertles中的值”)
buildConfigField中的数据类型使用标准类型命名 – 如:String
resValue(“数据类型”,“变量字段”,“gradle.propertles中的值”)
resValue中使用小写命名 – 如:string
我们在使用的时候一定要注意一下几点
- buildConfigField中的值如果是String类型,请使用\"\"包裹,转义
- resValue中的值不需要添加\"\"
原因很简单,最后看下编译后的结果就一目了然了
buildConfigField生成的文件
public static final String umenAppkey = "5dfae3ff570df3faea000e00";
public static final String umenAppsecret = "8812a852b5490a48a665bce64c317cbd";
resValue生成的文件
<string name="umenAppkey" translatable="false">5dfae3ff570df3faea000e00</string>
<string name="umenAppsecret" translatable="false">8812a852b5490a48a665bce64c317cbd</string>
使用
在Java文件中使用
BuildConfig.umenAppkey
UMConfigure.init(this,BuildConfig.umenAppkey,"uMeng",UMConfigure.DEVICE_TYPE_PHONE,BuildConfig.umenAppsecret);
在xml文件中使用
@string/umenAppkey
<meta-data
android:name="UMENG_APPKEY"
android:value="@string/umenAppkey" />