补充,自行安装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:601: 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 FAILEDD:\Android\sdk\tools\ant\build.xml:601: The following error occurred while executing this line:D:\Android\sdk\tools\ant\build.xml:653: The following error occurred while executing this line:D:\Android\sdk\tools\ant\build.xml:698: null returned: 1

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

  找到两个解决方法:

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

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

<property name="aapt.ignore.assets" value="<dir>crunch:!.svn:!.git:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*.scc:*~" />  

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

-compile:    [javac] Compiling 93 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] 3 个警告    [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 SUCCESSFULTotal time: 1 minute 27 seconds

更多相关文章

  1. 使用命令建立简单的布局
  2. android 录像/打开video文件
  3. (原)Eclipse的java中文件读写
  4. ADT20新建项目Android Support library not installed问题
  5. Android File文件操作
  6. Android adb不是内部或外部命令 问题解决
  7. Android Button Maker(在线生成android shape xml文件的工具),真方
  8. Android adb shell命令大全
  9. Android 签名打包(cmd命令行)

随机推荐

  1. android ListView添加checkbox注意事项
  2. Android学习札记23:LruCache
  3. android SQLite的CRUD
  4. Android(安卓)ScrollView用法
  5. delphi XE Android四大组件ContentProvid
  6. android裁剪图片
  7. android 控件绘制完成的监听
  8. android fp refresh
  9. android 图片的自由缩放和旋转
  10. Android又一个超漂亮的日历控件