一、背景
因爲最近編寫的android項目,需要編寫對應的SDK給別人使用,還好以前我都是拆成module寫的,所以還不太費工夫,不過因爲一些module裏面包含第三方的jar,所以打包有點麻煩
二、背景
我是看到這位的寫法然後實現成功的 利用Gradle打包含第三方類庫的jar包,很感謝
三、操作步驟
如果要混淆加密含有JNI的sdk,可以看這篇博客含有JNI的SDK通過proguard混淆加密
1、首先進入對應的module裏面查找對應 build.gradle 文件
2、在build.gradle文件中編寫對應的打包說明
task makeMyJar(dependsOn:['compileReleaseJavaWithJavac'], type: Jar) {
archiveName = "printer.jar" //這個是你打包之後的jar包的名字
from('build/intermediates/classes/release') //這是一些資源
from(project.zipTree("libs/fastjson-1.2.6.jar")) //第三方jar,是需要打包進入我這個printer包的
from(project.zipTree("libs/HitiPrinterService.jar")) //第三方jar,是需要打包進入我這個printer包的
destinationDir = file('build/libs') //生成的jar的輸出路徑,我這裏是在module對應的build文件夾下面的libs文件夾
exclude('com/maigao/printer/BuildConfig.class') //需要導出的配置
exclude('com/maigao/printer/BuildConfig\$*.class')
include('com/maigao/**/*.class') //自己module裏面的代碼,這個寫法是包含所有
include('com/alibaba/fastjson/**/*.class') //要包含的第三方的代碼
include('com/hiti/**/*.class') //要包含的第三方的代碼
}
3、執行打包(我這裏使用的是android studio)
3-1、直接雙擊shift鍵,跳出藍色搜索輸入框,在搜索輸入框裏面輸入 Terminal
3-2、在Terminal的命令欄中輸入 gradlew makeMyJar,然後接下來就等待它自己打印,如果你沒有編寫錯什麼,基本是可以打印成功的
3-3、打印成功的之後,在 Terminal 中會出現 BUILD SUCCESSFUL 字樣,然後在 module的build/libs 文件夾下面會有對應的jar包