Android update/Ant release 打包
以前一直用这么一款批量打包工具:兰贝壳儿,这是个eclipse插件,很好用,不过在我的mac上出现了暂时不能解决的bug,你可以戳这里 查看 兰贝壳儿批量打包链接。
接下来我便尝试用Android update 和 ant release 给android工程 打包,同事写了批量脚本,我只要测试ant打包通过就ok了.
对一个android工程打包也就两个步骤,我们往下看吧。下面的方法不支持外部工程(android lib)的引用方式构建。
第一步.用Android update构建build文件
android update project --name projectName --target android-14 --path ./
1.name后面的参数 projectName是你的项目工程名
2.target 后面的参数是你指定的api
3.path是工程路径, ./ 也就是当前目录
执行以上命令后你的工程目录下会多了一个build.xml文件、一个project.properties文件和另外两个文件(这两个文件我暂时没用到)
第二步.用ant打包工程
ant release -buildfile /user/.../myProject/build.xml -propertyfile /user/.../myProject/project.properties -Dkey.store=/user/.../myProject/myproject.keystore -Dkey.alias=aliasName -Dkey.store.password=123456 -Dkey.alias.password=1233456
1.-buildfile 后面的参数是build.xml路径<pre name="code" class="plain">
2.-propertyfile后面的参数是projet.properties路径
3.-Dkey.store后面的参数是 keystore路径
问题记录:
1.Android SDK 升级问题:API 升级到20后 /sdk/tool/proguard文件夹 就不存在了 不能够混淆编译
这个issue在这里https://code.google.com/p/android/issues/detail?id=72419 我的临时解决方案是 备份好那个文件夹在升级, 然后 粘贴回来
2.如果配置了proguard文件,ant打包的时候可能会报错,需要在proguard.cfg配置一些你要忽略的文件
比如说的工程是低版本的target api 可是support v4却用了一些高版本的api,ant执行是会找不到它的reference,你需要在proguard.cfg中这样写
-libraryjars libs/android-support-v4.jar
-keep class android.support.**{*;}
-dontwarn android.support.v4.**
在比如说你的jar包有一些java的api引用,可这些api android却没有提供,就像junit,那么你同样需要在proguard中声明类似上面的代码。
3.写代码时建议用最新的API,同时manifest.xml中需要指定min-sdk,eclipse会帮助提示你是否对低版本不兼容,sdk manager也用最新的build API