ant打包所遇到问题(外导library项目包)
来源:互联网 发布:抽象工厂模式 java 编辑:程序博客网 时间:2024/05/05 12:14
、背景
项目进行到一定程度了,每次发布前,产品要求打包测试,都需要手动从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 F:/android/adt-bundle-windows-x86-20140321/sdk/tools/ant/build.xml:471: Invalid
提示这个错误,不要着急,毕竟能大概知道原因,就是因为引用的第三方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
- ant打包所遇到问题(外导library项目包)
- Ant 多渠道 多项目应用library 打包Android项目遇到问题总结
- ant 打批量渠道包,第三方项目作为library打包出错的问题
- Android使用Ant打包所遇到问题的解决方法
- 使用Ant自动打包项目遇到的一个问题,备案!
- ant打包中遇到的问题
- 项目打包遇到问题(一)
- Android studio打包所遇到的问题
- android引入JAR包,打包成JAR包,打包成Library项目,导入Library项目
- Ant打包遇到未找到包问题解决方法
- android导入jar包,打包成jar包,打包成library,导入library项目
- [JAR包] android引入JAR包,打包成JAR包,打包成Library项目,导入Library项目
- [JAR包] android引入JAR包,打包成JAR包,打包成Library项目,导入Library项目
- [JAR包] android引入JAR包,打包成JAR包,打包成Library项目,导入Library项目
- [JAR包] android引入JAR包,打包成JAR包,打包成Library项目,导入Library项目
- [JAR包] android引入JAR包,打包成JAR包,打包成Library项目,导入Library项目
- [JAR包] android引入JAR包,打包成JAR包,打包成Library项目,导入Library项目
- 修改eclipse项目中包名所遇到的问题(一)
- 第六章 子过程 和子过程引用
- TortoiseSVN checkout 之后图标(绿色勾之类的)没有显示出来的问题
- 如何成为优秀开发人员
- C语言初学 测定数据类型长度
- What Is Key-Value Coding?
- ant打包所遇到问题(外导library项目包)
- JS下拉菜单
- css note
- CentOS 6 网络设置修改 指定IP地址 DNS 网关(实测 笔记)
- CustomEditText
- C#模拟http 发送post或get请求
- form标签 小例子
- window 下 mongodb 配置文件快速启动
- nginx负载均衡