《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>android update project --name ProjectDemo --target 8 --path ./
  2. Updated project.properties
  3. Updated local.properties
  4. Added file D:\ProjectDemo\build.xml
  5. Updated file D:\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. ant release

可选:


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



Android 自动编译、打包生成apk文件 3 - 使用SDK Ant方式的更多相关文章

  1. Android 自动编译、打包生成apk文件 2 - 使用原生Ant方式

    from://http://blog.csdn.net/androiddevelop/article/details/11100109 相关文章列表: <Android 自动编译.打包生成apk ...

  2. Android 自动编译、打包生成apk文件 4 - 多渠道批量打包

    相关文章列表: < Android 自动编译.打包生成apk文件 1 - 命令行方式> < Android 自动编译.打包生成apk文件 2 - 使用原生Ant方式 > < ...

  3. linux(以ubuntu为例)下Android利用ant自动编译、修改配置文件、批量多渠道,打包生成apk文件

    原创,转载请注明:http://www.cnblogs.com/ycxyyzw/p/4555328.html  之前写过一篇<windows下Android利用ant自动编译.修改配置文件.批量 ...

  4. 使用ant自动编译、打包生成apk文件

    上次使用命令行生成apk文件<Android 命令行编译.打包生成apk文件>,学习命令行生成的目的是为了编写ant打下基础. 一. ant环境 下载ant包,配置环境变量 二.ant编译 ...

  5. windows下Android利用ant自动编译、修改配置文件、批量多渠道,打包生成apk文件

    原创文章,转载请注明:http://www.cnblogs.com/ycxyyzw/p/4535459.html android 程序打包成apk,如果在是命令行方式,一般都要经过如下步骤: 1.用a ...

  6. 在eclipse中将android工程打包生成apk文件

    1.)生成keystore 按照下面的命令行 在C:\Program Files\Java\jdk1.6.0_10\bin>目录下,输入keytool -genkey -alias androi ...

  7. Android 手机卫士--打包生成apk维护到服务器

    项目打包生成apk过程: 1.生成签名文件,并且指定所在位置 2.使用生成的签名文件,给工程打包生成一个apk 本文地址:http://www.cnblogs.com/wuyudong/p/59033 ...

  8. 用eclipse编写Android程序时怎样生成apk文件

    转载请注明出处:http://blog.csdn.net/ns_code/article/details/16828449 APK是Android Package的缩写,即Android安装包.通过将 ...

  9. Android 命令行编译、打包生成apk文件

    一.搭建搭建环境 1. 安装JDK 和 Android SDK   2. 配置环境变量 D:\android-sdk-windows\tools C:\Program Files\Java\jdk1. ...

随机推荐

  1. 迁移到MSYS2 与 Qt 工具链注意的几个事情(注意链接顺序,并且人造mingw工具链所没有的局部midl.exe命令)

    Microsoft Visual Studio 2015社区版提供了强大的开发体验,且 Qt 提供了预编译版本.然而,由于客户提出兼容Windows XP ~ Windows 8.1 这样宽泛的环境要 ...

  2. Windows下使用XManager访问Ubuntu 11.04的设置方法

    1.Download the attached file and upload it to the server. And, enter the following command to update ...

  3. unity 距离某天还有多久

    距离某一天还有多久,简单的小例子. using UnityEngine; using System.Collections; using System; public class test : Mon ...

  4. Freedur为什么会免费?

    难道没人看看他们的官方站点吗? Freedur倒闭了...... 一个中国人,Chris Lee,作为Freedur的会计师,窃取了公司的银行帐号.并将Freedur的官方站点指向自己的空间.而且声称 ...

  5. oauth2认证

    using System; using System.Collections.Generic; using System.Security.Cryptography; using System.Con ...

  6. exit函数的妙用

    写了一个程序,用来推断一个文件是否存在: #include<stdio.h> main() {  FILE *fp;  fp = fopen ("/home/wang/my/ct ...

  7. Xcode常用快捷键 (转载)

    Xcode快捷键,工欲善其事,必先利其器.mac的键盘和ms的还是有些不一样,得适应一下下. 新建项目 command+shift+n 新建文件 command+n 新建空文件 command+con ...

  8. java打包/命令行方式运行jar(命令行进行程序测试)

    public class Testtmp { public static void main(String[] args) { // TODO Auto-generated method stub f ...

  9. PHP获取中文汉字首字母方法

    function getFirstLetter($str){ $fchar = ord($str{0}); if($fchar >= ord("A") and $fchar ...

  10. shell基础认识

    Shell 我们在终端下写命令Linux内核是看不懂的必须通过shell解释成内核可执行的代码 这就是shell(其实解释命令这只是它的一个功能模块,shell还可以用来进行程序设计) 有点类似win ...