1柬祠、新建一個(gè)項(xiàng)目
2、項(xiàng)目中新建一個(gè)module
3捶闸、修改新module下的build.gradle文件
task makeJar(type: Copy) {
//如果什么都不寫就生成在默認(rèn)的路徑下,也就是下文的build/intermediates/aar_main_jar/release/下,build目錄是在當(dāng)前module的文件夾下椭符,比如我的就是在activity下。
//刪除
delete 'build/output/activity.jar'
//打包好的jar包在這個(gè)目錄耻姥,至少這個(gè)版本的module打包后是在aar_main_jar這個(gè)目錄下
from('build/intermediates/aar_main_jar/release/')
//打包好的jar包移到這
into('build/libs/')
//將classes.jar放入build/libs/目錄下
//include ,exclude參數(shù)來(lái)設(shè)置過(guò)濾
//(我們只關(guān)心classes.jar這個(gè)文件)
include('classes.jar')
//重命名
rename('classes.jar', 'activity.jar')
}
//執(zhí)行
makeJar.dependsOn(build)
添加這些代碼后就可以在Terminal中運(yùn)行g(shù)radlew makeJar销钝,然后成功了就可以在上述目錄里找到j(luò)ar包了,如果你嘗試了發(fā)現(xiàn)不對(duì)琐簇,那就得辛苦點(diǎn)了蒸健,在build/intermediates/目錄下一個(gè)一個(gè)找吧!
也可以在gradle的命令窗口里點(diǎn)擊啟動(dòng)
4婉商、如果module中引用了第三方的jar
需要修改上面配置打包的指令
task makeJar(type:Jar){
archivesBaseName = "mylib"
from(project.zipTree('build/intermediates/packaged-classes/release/classes.jar'))
from(project.zipTree('build/intermediates/packaged-classes/release/libs/okhttp-3.11.0.jar'))
from(project.zipTree('build/intermediates/packaged-classes/release/libs/glide-3.6.0.jar'))
from(project.zipTree('build/intermediates/packaged-classes/release/libs/retrofit-2.4.0.jar'))
from(project.zipTree('build/intermediates/packaged-classes/release/libs/okio-1.15.0.jar'))
destinationDir = file('build/libs')
}
makeJar.dependsOn(build)
5似忧、如果是在gradle中使用compile 'com.xxx.xxx:xxx:1.0'的方式引入的
你android studio中每個(gè)項(xiàng)目目錄下都有這個(gè)外部類庫(kù),如果你在gradle中通過(guò)compile '...'的方式引入了其他的庫(kù)丈秩,那么都會(huì)在這個(gè)地方出現(xiàn)相應(yīng)的jar包盯捌,這是gradle緩存的文件,你選中你想要的那個(gè)jar包蘑秽,右鍵->選擇"Copy Path"->記事本中粘貼出這個(gè)路徑饺著,然后你就根據(jù)這個(gè)路徑找到這個(gè)jar包在你電腦的哪里了。
可以將這個(gè)jar包復(fù)制到module中的libs文件下肠牲,然后打jar包過(guò)程如
4
幼衰。注意:不同AndroidStudio版本,build/intermediates/packaged-classes/release/classes.jar路徑是不同的埂材。