Android将library打包成jar包和aar包

有时候,我们需要将一个SDK的包,打成一个独立的JAR/AAR提供给别的同事或者第三方使用,这时候,就需要将项目中的某模块进行打包。

经过测试,发现不同的android studion 版本,编译生成的jar包,保存的路径可能都不一样。AS 4.0以下生成的JAR包保存在:build/intermediates/bundles/本次例子使用的是AS 4.2,打包生成的JAR包位于:build/intermediates/packaged-classes

一  创建 library  项目: 工程(右键)-->new --> Module 创建android library项目,填上你的名称即可,我这里直接叫 mylibrary。

 

 

二  添加打包的自定义任务。

 在 mylibrary 模块中的 build.gradle添加任务,代码如下:

//task to export contents as jar
task exportJar(type: Copy) {
   //这个需要根据自己的安卓as的版本,看是否存在
from('build/intermediates/packaged-classes/release/')
//将生成的JAR包拷贝到哪里,我这里直接拷贝到app模块的libs目录下去 into(
'../app/libs') include('classes.jar') ///Rename the jar rename('classes.jar', 'mylibrary.jar')
}


exportJar.dependsOn(deleteOldJar, build)

 

这里分享一个小的TIPS:

有时候我们发现,build/intermediates/packaged-classes/release/  这个路径可能我们生成的时候,发现并不存在。可以执行这样操作让其生成。

在模块mylibrary的gradlek上,依次找到 mylibrary--->build--->clean(删除生成的缓存)--->build(重新build)---》assemble; mylibrary--->other-->assembleDebug-->assembleRelease

这样上面的文件夹就会生成了,当然也要注意,不同的AS版本上面的命令的所在的位置也不一样的。

 

posted @ 2022-02-08 10:07  不卷轮子锅  阅读(1034)  评论(0编辑  收藏  举报