Eclipse打包多渠道包
下面介绍的是在eclipse中使用gradle进行多渠道打包(添加签名+混淆)
1,首先新建一个android测试项目,结构如下图所示:
2,选中右键选择expert->生成gradle文件,如下图所示:
3,刷新项目(F5)多了bulid文件和gradle文件夹(如果刷新后并没有出现gradle文件夹,可以手动创建新项目按以上步骤添加一般就会出现,复制到需要打包的项目根目录下即可),如下图所示:
4,打开gradle-wrapper.properties,如下图所示:
去官网下载对应的gradle-1.6-bin.zip,如果不知道怎么在官网下载,可以直接谷歌百度,一般会有.
5,配置gradle环境变量
下载的gradle-1.6-bin.zip解压路径
GRADLE_HOME :
6,测试环境是否配置成功(cmd 输入gradle -v):
7,打开build.gradle准备配置打包
我们要配置的是多渠道,签名,和混淆.
8,配置签名和混淆(在android节点内添加):
signingConfigs {
myConfig {
myConfig {
//填写你的keystore路径和密码们(配置签名)
storeFile file("D:\\xxx\\xxx\\xxx.keystore")
storePassword "xxx"
keyAlias "xxx"
keyPassword "xxx"
}
}
buildTypes {
release {
storeFile file("D:\\xxx\\xxx\\xxx.keystore")
storePassword "xxx"
keyAlias "xxx"
keyPassword "xxx"
}
}
buildTypes {
release {
//添加签名
signingConfig signingConfigs.myConfig
signingConfig signingConfigs.myConfig
//执行混淆
runProguard true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-project.txt'
}
}
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-project.txt'
}
}
9,配置多渠道(同样在build文件的android节点中添加):
productFlavors {
baidu {
manifestPlaceholders = [ CHANNEL_NAME:"Baidu"]
}
xiaomi {
manifestPlaceholders = [ CHANNEL_NAME:"Xiaomi" ]
}
wandoujia {
manifestPlaceholders = [ CHANNEL_NAME:"Wandoujia" ]
}
yingyongbao {
manifestPlaceholders = [ CHANNEL_NAME:"yingyongbao" ]
}
huawei {
manifestPlaceholders = [ CHANNEL_NAME:"huawei" ]
}
}
baidu {
manifestPlaceholders = [ CHANNEL_NAME:"Baidu"]
}
xiaomi {
manifestPlaceholders = [ CHANNEL_NAME:"Xiaomi" ]
}
wandoujia {
manifestPlaceholders = [ CHANNEL_NAME:"Wandoujia" ]
}
yingyongbao {
manifestPlaceholders = [ CHANNEL_NAME:"yingyongbao" ]
}
huawei {
manifestPlaceholders = [ CHANNEL_NAME:"huawei" ]
}
}
红色文字就是打包写入的渠道名;CHANNEL_NAME是需要在你项目清单文件中配置的相对应:
如果是友盟多渠道,则需要在AndroidManifest.xml中的application节点里添加如下配置:
<meta-data
android:name="UMENG_CHANNEL"
android:value="${CHANNEL_NAME}" />
android:name="UMENG_CHANNEL"
android:value="${CHANNEL_NAME}" />
${CHANNEL_NAME}在打包的时候就会被之前配置在build的渠道名替换
10,开始正式打包
在控制台中,进入项目所在的目录,执行gradle clean
gradle build过程报了几个错:
1. baidu {
manifestPlaceholders = [ CHANNEL_NAME:"Baidu"]
} baidu这个关键词 不能以数字开头
manifestPlaceholders = [ CHANNEL_NAME:"Baidu"]
} baidu这个关键词 不能以数字开头
2.缺少local.properties文件:创建local.properties文件(和混淆文件同目录),添加sdk路径,我的:
sdk.dir= E:/adt-bundle-windows-x86_64-20140702/sdk
3.某些 .9.png图片生成不正规 AAPT 工具无法确认 9-patch 图片中的拉伸区域,重新制作,或去掉.9
4.添加.so的声明(不声明影响功能)sourceSets-main中添加jniLibs.srcDir(['libs'])
5.打出的包有乱码:首先看下eclipse的编码环境(如是GBK),在android节点中添加 android { compileOptions.encoding = "GBK" }
然后执行gradle build
release.apk就是我们需要的多渠道包.