android studio gradle多渠道打包,关于Android studio Gradle 实现多渠道打包

最近项目用到了友盟的渠道,正常情况下在AndroidManifest.xml做以下修改:android:name="UMENG_CHANNEL"

android:value="YINGYONGBAO"/>

渠道少的话可以直接修改value值直接打包即可,由于Android市场众多,每次版本更新都需要多次打包,所以研究了下使用studio gradle 多渠道打包,首先得把value改成:android:name="UMENG_CHANNEL"

android:value="${UMENG_CHANNEL_VALUE}"/>

其中value的值${UMENG_CHANNEL_VALUE}中的值就是你在gradle中自定义配置的值

build.gradle文件就利用productFlavors这样写:productFlavors {

default_channel{}

YingYongBao{}

JinLi{}

HuaWei{}

WanDouJia{}

}productFlavors.all { flavor ->

flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE:name ]

}android.applicationVariants.all { variant ->

variant.outputs.each { output ->

defoutputFile = output.outputFile

if(outputFile !=null&& outputFile.name.endsWith('.apk')) {

File outputDirectory =newFile(outputFile.parent);

deffileName

if(variant.buildType.name =="release") {

fileName="app_v${defaultConfig.versionName}_${packageTime()}_${variant.productFlavors[0].name}.apk"

}else{

fileName = "app_v${defaultConfig.versionName}_${packageTime()}_beta.apk"

}

output.outputFile =newFile(outputDirectory, fileName)}}}

其中name的值对相对应各个productFlavors的选项值;fileName对应的是打包好的名字,我是这样写的:fileName="jihe_${variant.productFlavors[0].name}.apk"

build.gradle文件中defaultConfig还需要这样写:defaultConfig {

applicationId"***************"

minSdkVersion15

targetSdkVersion23

versionCode5

versionName"1.1"

manifestPlaceholders = [UMENG_CHANNEL_VALUE:"default_channel"]

}

这样就可以多渠道打包了,如下:

a35195c66100

你就可以选择一次打一个包或者多个包了。

由于中间使用了jdk1.8的Lambda表达式,所以还须配置下:

下载安装jdk8,配置JAVA8_HOME到环境变量中,配置%JAVA8_HOME%\bin到PATH

配置JDK Location,File->Project Structure->SDK Location:

a35195c66100

然后在build.gradle文件中这样配置:buildscript {

repositories {

jcenter()

mavenCentral()

}

dependencies {

classpath'com.android.tools.build:gradle:2.1.0'

classpath'me.tatarka:gradle-retrolambda:3.2.5'

}

}

applyplugin:'com.android.application'

applyplugin:'me.tatarka.retrolambda'

然后在build.gradle文件中android中这样写:compileOptions {

sourceCompatibility JavaVersion.VERSION_1_8

targetCompatibility JavaVersion.VERSION_1_8

}

至此Java jdk1.8的Lambda表达式 就可以使用了,友盟的多渠道打包也就不会报错直接使用了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值