有时候,我们需要将一个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版本上面的命令的所在的位置也不一样的。