build.gradle使用gradle.property中定义的字段及乱码问题的解决

                     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文件字段值的读取

 

转载于:https://www.cnblogs.com/bimingcong/p/8144736.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值