关于ant 打包android引入第三方类库library project的终极解决方案


==========前言==========
网上搜了很多种方案,但大多说得比较笼统
比如:
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模板的解决方案,但是不好用,于是我想到了一个复制的方法,手动写死把代码复制进去。


http://www.apkbus.com/android-138842-1-1.html



你可能感兴趣的:(android,java)