ant 打包android应用

一.准备ant,android

   1.把官网下载的ant和android解压到本地
   2.环境变量中设置ANT_HOME和ANDROID_HOME,比如:F:\software\apache-ant-1.9.3,F:\android\adt-bundle-windows-x86-20140321\sdk
   3.%ANT_HOME%\bin和%ANDROID_HOME%\bin加到path
注:ANT_HOME和ANDROID_HOME是一定要配置的,因为我们build.xml会用到
   
二.给某项目增加ant环境(比如项目名 WebView)
Dos命令下进入项目根路径,比如:cd F:\workspace_android\WebView,执行如下命令:

android update project --name WebView -t 2 -p F:\workspace_android\WebView
此命令运行后会在项目路径下增加build.xml。

--name 必须有,后面跟项目名
-p 代表项目路径
-t 代表target version,也就是我们android的target id,通过命令“android list target” 查看target id:
   id: 1 or "android-18"
     Name: Android 4.3
    ...
   id: 2 or "android-19"
   ...
   可以看到 id 2 代表的是版本android-19

三.发布项目

通过命令ant release或者ant clean release(建议),因为之前可能有发布失败的情况,如果不clean直接ant release的话是不会发布成功的。

此命令会根据项目目录下的ant.properties找密钥,如果没有ant.properties,将发布一个未签名的apk文件,而未签名的apk是不能安装到手机里的。
所以我们需要新建ant.properties文件,内容如下:

key.store=android.keystore
key.alias=android.keystore
key.store.password=123456
key.alias.password=123456

此内容意思是找android.keystore的密钥,如果没有,我们需要先创建此密钥,谷歌建议此密钥只需创建一次,因为可能我们开发的多个app需要数据共享。
生成keystore命令如下:
keytool -genkey -alias android.keystore -keyalg RSA -validity 20000 -keystore android.keystore

之后输入密钥的密码和一些组织单位等信息:

输入密钥库口令: 123456
再次输入新口令: 123456
您的名字与姓氏是什么?
  [Unknown]:  zhang biao
您的组织单位名称是什么?
  [Unknown]:  **
您的组织名称是什么?
  [Unknown]:  **
您所在的城市或区域名称是什么?
  [Unknown]:  shenzhen
您所在的省/市/自治区名称是什么?
  [Unknown]:  guangdong
该单位的双字母国家/地区代码是什么?
  [Unknown]:  CN
CN=zhang biao, OU=aisaw, O=aisaw, L=shenzhen, ST=guangdong, C=CN是否正确?
  [否]:  y
这样就生成了android.keystore,以后不用重复创建,把此文件copy到项目路径。

这样,如果发布成功,我们就能看到项目bin文件夹有WebView_release.apk,即已经签过名的应用。

注意,如果我们项目中有依赖其他项目,那么我们也需要把那些项目创建ant环境,比如说android应用一般会依赖android-support-v7-appcompat,这时我们需要cd到此项目运行第二步的命令,看到有build.xml就可以了。否则可能会看到如下错误:BUILD FAILED F:\android\adt-bundle-windows-x86-20140321\sdk\tools\ant\build.xml:471: Invalid

file: F:\android\adt-bundle-windows-x86-20140321\sdk\extras\android\support\v7\appcompat\build.xml等错误,此意在appcompat项目里没有ant环境


如果转载,请注明原创地址,谢谢。


ant 打包android应用,,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。