补充,自行安装Ant, 配置ant环境变量, 在android 项目 根目录下使用

 android update project

可以自动生成 build.xml local.peoperties 文件

//------------------------------------------------------------------------------------------------------------------

1、背景

项目进行到一定程度了,每次发布前,产品要求打包测试,都需要手动从eclipse中导出签名APK,很是麻烦。于是想起了之前探索过的Ant自动签名打包。查看自己之前写的博客Windows系统下Ant自动编译打包并签名Android应用——探索篇,边动手边复习。但是后面遇到了一大串的问题...

2、问题解决过程

  1)、libs库中的第三方包

  如果项目只是引用了第三方jar包,只要将jar包放入项目libs目录下就可以了,ant编译的时候会自动把第三方jar包加入进去的,没有任何问题。

  2)、项目引用了其他library项目

  如果项目中引用了其他library项目,在使用android update project命令的时候,会提示你在命令后面添加--subproject参数来将其他引用项目一起update,一开始以为没什么问题,就没走这步,谁知道后面提示找不到library项目的build.xml文件。

BUILD FAILED /Android/SDK/sdk/tools/ant/build.xml:: Invalid file: /依赖项目/build.xml   

  提示这个错误,不要着急,毕竟能大概知道原因,就是因为引用的第三方library项目没有build.xml文件吧。没关系,我们对所有第三方项目都执行一次 android update project 命令,让它们根目录下都自动生成 build.xml 和 local.properties 文件,问题迎刃而解。

  3)、invalid resource directory name: F:\workspace\Zlib\bin\res/crunch 错误

-code-gen:
[mergemanifest] Found Deleted Target File
[mergemanifest] Merging AndroidManifest files into one.
[mergemanifest] Manifest merger disabled. Using project manifest only.
[echo] Handling aidl files...
[aidl] No AIDL files to compile.
[echo] ----------
[echo] Handling RenderScript files...
[echo] ----------
[echo] Handling Resources...
[aapt] Generating resource IDs...
[aapt] invalid resource directory name: F:\workspace\Zlib\bin\res/crunch BUILD FAILED
D:\Android\sdk\tools\ant\build.xml:: The following error occurred while executing this line:
D:\Android\sdk\tools\ant\build.xml:: The following error occurred while executing this line:
D:\Android\sdk\tools\ant\build.xml:: null returned:

  遇到这个错误,编译失败,很棘手,完全不知道原因。通过查找资料,发现可能是因为Android  SDK版本太新了(我用的是22.6.2),会自动生成crunch目录,而ant在编译时总是不识别bin目录下编译好的资源。

  找到两个解决方法:

  ①、关掉eclipse,因为eclipse自动生成res\bin\crunch目录;去到项目目录下删掉bin文件夹;命令行中执行ant release命令;

  ②、在ant\tools\build.xml或者项目的build.xml文件中添加

  我的做法是先按照①的做法,再在项目的build.xml文件中添加②的属性,也不知道②的屏蔽方法会不会造成其他问题,反正命令行中提示如下

-compile:
[javac] Compiling source files to /Users/Rubert/myApp/platforms/android/CordovaLib/ant-build/classes
[javac] 警告: [options] 源值1.5已过时, 将在未来所有发行版中删除
[javac] 警告: [options] 目标值1.5已过时, 将在未来所有发行版中删除
[javac] 警告: [options] 要隐藏有关已过时选项的警告, 请使用 -Xlint:-options。
[javac] 注: 某些输入文件使用或覆盖了已过时的 API。
[javac] 注: 有关详细信息, 请使用 -Xlint:deprecation 重新编译。
[javac] 个警告
[echo] Creating library output jar file...

  4)、遇到java文件编码UTF-8 BOM头签名错误(非法字符 \ufeff或者\65279)

  这个问题显而易见,就是因为文件编码UTF-8的签名头的问题,使用文本编辑器将文件重新保存为不带BOM头的UTF-8编码文件,OK。我用的是Sublime Text 2。

  3、最后结果

release:

BUILD SUCCESSFUL
Total time: minute seconds
 

[转] Ant 编译 Android 项目为 Apk 实战, 常见问题解决的更多相关文章

  1. windows下使用Ant编译Android项目

    1. 安装ant,配置环境变量 2. 执行命令: android update project -p 项目路径 例:android update project -p D:\project\UI_de ...

  2. 一个使用命令行编译Android项目的工具类

    一个使用命令行编译Android项目的工具类 简单介绍 编译apk项目须要使用的几个工具,基本都在sdk中,它们各自是(Windows系统): 1.aapt.exe 资源打包工具 2.android. ...

  3. Visual Studio Xamarin编译Android项目出错的解决办法

    安装完Xamarin后,编译Android项目时,你会发现好长时间进度都不动,当你取消编译后,会发现其实是出错了,就是因在Android项目在第一次编译时要去google网站上下一个andorid s ...

  4. Ant 命令行编译Android项目

    首先把android sdk下的tools目录加到系统path环境变量里, 要么就得直接指定android.bat的绝对路径 对于一个新项目, 可以用这个命令创建需要的ant编译环境(可以看到andr ...

  5. 使用ant优化android项目编译速度,提高工作效率

    1.Android项目编译周期长,编译项目命令取消困难 2.在进行Android项目的编译的同时,Eclipse锁定工作区不能进行修改操作 3.在只进行资源文件的修改时,Eclipse对资源文件的修改 ...

  6. 使用ant编译Android APK

    ANT —— Apache Ant is a Java library and command-line tool that help building software. 1. 部署ANT的使用环境 ...

  7. [Android Pro] ant 编译android工程

    参考文章: http://blog.csdn.net/xyz_lmn/article/details/7268582?reload http://hubingforever.blog.163.com/ ...

  8. Ant编译android程序

    http://blog.csdn.net/xyz_lmn/article/details/7268582 这一篇主要做了创建android项目.update已存在项目.ant编译项目. 一,准备ant ...

  9. eclipse将android项目生成apk并且给apk签名

    转载:http://www.cnblogs.com/tianguook/archive/2012/09/27/2705724.html 生成apk最懒惰的方法是:只要你运行过android项目,到工作 ...

随机推荐

  1. mysql 创建表字段类型笔记

    1.字段联合唯一,unique(ServerVersion , MobileVersion, MobileType) .并且mysql设置多个字段为主键是起不到约束唯一的作用. 2.二进制用 BLOB ...

  2. A Byte of Python (1)安装和运行

    有两种方式构建软件设计:一种是把软件做得很简单以至于明显找不到缺陷:另一种是把它做得很复杂以至于找不到明显的缺陷. ——C.A.R. Hoare 获得人生中的成功需要的专注与坚持不懈多过天才与机会. ...

  3. QT 获取文件MD5值

    /* 方法1 */ QFile theFile(fileNamePath); theFile.open(QIODevice::ReadOnly); QByteArray ba = QCryptogra ...

  4. HDU 1848 Fibonacci again and again

    题解:尼姆博弈,对于1至1000计算SG函数,每次取最小的前继值,SG值异或为0则为P-position. #include <cstdio> #include <cstring&g ...

  5. 【转】windows上自动设置java环境变量的脚本

    转载:http://www.cnblogs.com/flowwind/p/4066146.html 近期打算学习安卓开发,于是乎要准备java开发环境,安装好jdk后,就要 设置java环境变量,ja ...

  6. NOIP2015前

    时间过得好快...明天就要出发去NOIP了...然后再过半年就要省选了....希望自己能取得好成绩吧... NOIP2015 bless all !

  7. 【随手记-有空整理】使用PHPMailer和QQ邮箱实现邮件的自动发送

    使用PHPMailer和QQ邮箱发送邮件时,在密码一栏里要填写QQ邮箱提供的授权码,而不是邮箱的登录密码 授权码获取可参考:http://service.mail.qq.com/cgi-bin/hel ...

  8. mysql root密码重置

    1.修改my.cnf #位置一般是 /etc/my.cnf 2.重启mysql服务 service mysqld restart 3.进入mysql mysql -uroot -p 然后直接回车 4. ...

  9. JS拖动DIV布局

    方法一: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3 ...

  10. LinkList Operation

    链表典型数据结构: #define ElemType int typedef struct LinkNode{ ElemType value; struct LinkNode* next; }; 相比 ...