len:26840
len:15
len:6
len:0
len:2220
len:6
zz22zz技术论坛
首页| 论坛| 消息
主题:关于ant 打包android引入第三方类库library project的终极解决方案
太史慈发表于 2013-08-21 13:09
==========前言==========
网上搜了很多种方案,但大多说得比较笼统
比如:
1、关于ant 打包android progect同时引入第三方library project注意点
http://blog.csdn.net/zah5897/article/details/8863864

2、android ant打包 引用第三方library
http://my.eoe.cn/712685/archive/4335.html

3、ant-build.xml打包应用程序【总结】
http://www.blogjava.net/1504/archive/2009/04/15/265851.html

后来尝试了一下,又准备放弃,改用maven来打包,不过考虑到学习成本比较大...
不过后来还是在ant的基础上搞出来了,此帖不光能解决一个library的依赖问题,还能解决多个library递归依赖的问题。

==========正文==========
废话不多说,贴上build.xml

Initializing all output directories...

Generating R.java / Manifest.java from the resources...

Compiling java source code...

Converting compiled files and external libraries into ${outdir-dx}test.dex...

Packaging resources and assets...

Packaging unsigned apk for release...

It will need to be signed with jarsigner before being published.

Packaging signed apk for release...

optimizing the application...

APK is released. path:${out-signed-package-ospath}
APK is copy to path:${outdir-package}

=========解析=========
其中动态库so文件目录我是没用到了,不过第三方library我是用到了两个,所以定义了两个,注意,我们的两个library里面有依赖关系,
library-dir2依赖library-dir

重点1,资源文件打包:
根据工程中的资源文件生成R.java文件,我会把library中的res和library2中的res都打包到我的最终目录中。(具体自己看代码)

重点2,src文件打包:
同样的道理,复制两份,自己看代码应该看得明白。

重点3:这时我们来运行ant命令来打包了,打包资源文件的时候很容易打包,没有报错,但是打包src文件的时候,会提示找不到BuildConfig.java
原来我使用了ZI-master,代码里面会使用到gen下的BuildConfig.java,但是我们的ant命令并没有生成BuildConfig.java,只能生成R.java。
好蛋疼,网上搜到了一个BuildConfig模板的解决方案,但是不好用,于是我想到了一个复制的方法,手动写死把代码复制进去。

到了这里,3大难点解析完毕了。大家有什么疑问欢迎在此跟帖,有问必答~
回帖(1):
1楼:今天回看了一下这个打包,发现生成R.java文件的时候写错了,类库里面应该也要把主程序的res引用 ..

全部回帖(1)»
最新回帖
收藏本帖
发新帖