gradle.property文件可以用來定義一些字段 而這些字段可以被build.gradle文件引用到
例如:給大家貼出來一個gradle.property文件
# Project-wide Gradle settings. APP_NAME=example_name IS_DEMO=false VERSION_CODE=99 VERSION_NAME=1.1.1 STORE_FILE=test
文件里有這些字段 前面是字段名 后面的是字段對應的值 我們可以在build.gradle文件里直接使用這些字段的值
例如:我們在build.gradle中使用VERSION_NAME、 VERSION_CODE、APP_NAME、IS_DEMO 等字段
注意顏色 紅色的字段是會自動從gradle.property中讀取的,但是藍色的字段是我們在AndroidManifest.xml文件中用到的 meta-data字段
apply plugin: 'com.android.application'
android {
compileSdkVersion 21
buildToolsVersion '25.0.0'
defaultConfig {
minSdkVersion 19
targetSdkVersion 21
versionCode VERSION_CODE
versionName VERSION_NAME
manifestPlaceholders = [APP_NAME: getMy(), IS_DEMO: IS_DEMO] //manifestPlaceholders里邊對應的字段是AndroidManifest.xml中用到的meta-data字段(藍色的部分)
}
buildTypes {
release {
minifyEnabled false
proguardFile 'proguard-project-release.txt'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
}
def getMy() {
return new String(APP_NAME.getBytes("iso8859-1"), "UTF-8")
}
dependencies {
.......
}
下面是在AndroidManifest.xml中用到的meta-data字段
<application android:name=".StartApp" android:allowBackup="false" android:icon="@drawable/xxxxx" android:label="${APP_NAME}"> <!-- 演示版標識 --> <meta-data android:name="SUSPEND_TAG" android:value="${IS_DEMO}"/>
寫到這里大家會疑惑為什么有這句話
manifestPlaceholders = [APP_NAME: getMy(), IS_DEMO: IS_DEMO]
這里的APP_NAME是meta-data的字段 為什么我還要再定義一個getMy()方法去取值
這里是因為如果直接引用gradle.property里的值會出現中文亂碼
至此 我們完成了build.gradle文件對gradle.property文件字段值的讀取
