有時候,我們需要將一個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版本上面的命令的所在的位置也不一樣的。