相关文章列表:
《 Android 自动编译、打包生成apk文件 1 - 命令行方式》 《 Android 自动编译、打包生成apk文件 2 - 使用原生Ant方式》 《Android 自动编译、打包生成apk文件 3 - 使用SDK Ant方式》 (当前文章)

之前第一篇和第二篇分别是都是完全自己手写代码,自己测试并执行所有命令行命令,并且把所有命令都用翻译成ant标签,现在可以使用ant自动打包了。 但是还存在问题,首先前两步骤没有加混淆(proguard)支持,而且复用也要检查下修改哪些内容,或者跨平台需要修改.bat文件引用等。 现在Android SDK中提供了包含之前写过的操作的封装,只需要使用一条命令android update project生成build.xml ,之后再修改配置文件支持不同特性即可,完全不用写ant代码,这些都由Android SDK自动生成。
一、生成SDK 命令生成build.xml文件
1. 执行命令创建
[plain] view plain copy print ?
  1. D:\ProjectDemo>androidupdateproject--nameProjectDemo--target8--path./
  2. Updatedproject.properties
  3. Updatedlocal.properties
  4. AddedfileD:\ProjectDemo\build.xml
  5. UpdatedfileD:\ProjectDemo\proguard.cfg

2. 结果
执行此命令会生成4个文件:
project.properties
local.properties
build.xml
proguard.cfg


3. 参数解释
--name ProjectDemo 项目名称
--target 8 指定项目Android版本
--path ./ 指定项目路径

如果不知道target后面使用哪个版本,可以使用如下命令查看本地支持Android版本号:
列出不同版本平台的对应id编号
android list targets



4. 相关资料
如果想了解android update project命令更多使用介绍,可以查看Android官方网站:
《Managing Projects from the Command Line》
http://developer.android.com/tools/projects/projects-cmdline.html
如果想了解andorid 命令参及含义,可以查看:
http://developer.android.com/tools/help/android.html


二、手动配置一些属性
1. 设置SDK路径
修改local.properties文件以下属性值,指定到本地SDK目录
sdk.dir=
例如:
sdk.dir=D:\\android-sdk-windows

2. 设置签名属性
把创建的密匙release.keystore放到当前目录下,并在此目录下创建ant.properties空文件,填入以下内容
key.store=release.keystore
key.store.password=antPassword
key.alias.password=antPassword
key.alias=release
proguard.config=proguard.cfg


三、使用ant运行项目
[plain] view plain copy print ?
  1. antrelease

可选:
debug:带调试用签名的构建
release:构建应用程序,生成的apk必须签名才可以发布
install:安装调试构建的包到运行着的模拟器或者设备;


通常ant项目只需要执行ant命令即可,但是Android提供了扩展参数,更多参数可以查看以下网址Ant Command Reference部分:
《Building and Running from the Command Line》
http://developer.android.com/tools/building/building-cmdline.html



四、异常记录
异常一、
BUILD FAILED
D:\ProjectDemo\build.xml:83: Cannot find D:\ProjectDemo\android-sdk-windows\tools\ant\build.xml imported from D:\ProjectDemo\build.xml
修改local.projects,必须是双斜杠
sdk.dir=D:\\android-sdk-windows


异常二:
[aapt] D:\ProjectDemo\res\layout\activity_main.xml:2: error: Error: String types not allowed (at 'layout_width' with value 'match_parent').
[aapt] D:\ProjectDemo\res\layout\activity_main.xml:2: error: Error: String types not allowed (at 'layout_height' with value 'match_parent').

BUILD FAILED
D:android-sdk-windows\tools\ant\build.xml:650: The following error occurred while executing this line:
D:android-sdk-windows\tools\ant\build.xml:691: null returned: 1

Total time: 1 second

当前Andorid版本不支持match_parent属性值,match_parent是Android 8以后开始支持的属性值,修改AndroidManifest中<uses-sdk android:minSdkVersion="8" />最少也要大于8。不过也可以把match_parent改为FILL_PARENT
转载请注明出处:http://blog.csdn.net/androiddevelop/article/details/11553215


更多相关文章

  1. Android属性动画,从源码的角度分析
  2. Android 打包之三配置文件
  3. Android库so文件及skia函数的调用
  4. Android之TextView------属性大全
  5. android布局文件属性说明(转)

随机推荐

  1. 输入两个整数求他们的和,差,积,商
  2. Linux性能优化(十)——CPU性能分析工具
  3. JS和TS中的void[每日前端夜话0xBE]
  4. JavaScript 的 Map 指南[每日前端夜话0xC
  5. Linux性能优化(十三)——CPU性能测试
  6. 输入两个整数调用puts函数,求两个整数的乘
  7. Linux性能优化(九)——Kernel Bypass
  8. 输入一个数加上12的结果
  9. 太强了!这款轻量级的数据库中间件完美解决
  10. 更轻量级的 V8 引擎[每日前端夜话0xC8]