最近在制作cocos2dx网游项目,在android跟腾讯合作方面, 有90多个渠道,所以制作了ant批量打包,网上资料不少但是要么没有细节,要么少东西,所以我把容易出问题的地方都列出来了。
ant-Contrib是用来批量执行的ant拓展,放到ant的lib目录下面
下面是build.xml注意事项
1. ANDROID_SDK_HOME为环境变量中的配置的android sdk目录
2. key 是渠道的list, 格式是channelname:channelID,channelname:channelID,.....
3. configFile是修改res/raw/aj_user_config.xml中test,这个是腾讯sdk的配置文件
4. version对应修改manifest中的version name
5. versioncode对应修改manifest中的versioncode
6. 另外apk的包名会根据channelID变化
7. 这里开始了批量打包的循环,然后循环修改各个channel的对应文件
8. APK的打包流程:1)生成R文件 2)编译aidl 3)编译java文件 4)转换dex 5)copy资源 6)打包apk 7)apk签名 8)优化
9. 要注意java sdk的问题, ant跟1.7在几个地方兼容不好, 如果出现签名问题(加密算法问题)或者运行问题, 把java sdk的环境目录设置成1.6的。
10.因为要修改腾讯sdk里面的xml配置文件, 但是这块正则匹配不太好使,ant老报错,所以只能使用字符替换,所以在腾讯sdk里面的xml都设置了默认的替换值, 改一个之后再自动改回来。
11. 要把so文件也打入到apk中,在
运行:可以写个批处理或者直接输入ant deploy即可!
下面是build.xml
目录初始化....
8888"value="channelId>${channelkey}"/>
test"value="configFile>${configFile}"/>
生成R.java文件....
编译aidl文件....
java源文件编译成class文件....GBK
target="1.6"
srcdir="."
destdir="${outdir-classes}"
bootclasspath="${android-jar}"
verbose="false"
>
将.class文件转化成.dex文件....
将资源文件放进输出目录....
打包成未签证的apk....
Packaging signed apk for release...
APK is released. path:${out-signed-package-ospath}
${channelkey}"value="channelId>8888"/>
${configFile}"value="configFile>test"/>
CAO Clean