在gradle下生成jar的命令如下:
def releaseTime() {
return new Date().format("yyyy-MM-dd", TimeZone.getTimeZone("UTC"))
}
def SDK_BASENAME = "rtm_sdk_core_v${android.defaultConfig.versionName}";
def sdkJarPath = "${rootProject.projectDir}/jar/${releaseTime()}";
def zipFile = file('build/intermediates/bundles/default/classes.jar') //待打包文件位置
task makeJar(type: Jar) {
from zipTree(zipFile)
from fileTree(dir: 'src/main', includes: ['assets/**']) //將assets目錄打入jar包
baseName = SDK_BASENAME
destinationDir = file(sdkJarPath)
}
makeJar.dependsOn(build)
之前本人使用的是android studio3.2版本,使用這個命令進行打包jar是沒問題的,直到我更新了as版本3.5.3,我再去通過makeJar打包報錯: Cannot expand ZIP '/Users/xxxxxx/build/intermediates/bundles/default/classes.jar' as it does not exist.
去build文件夾下看一下,根本沒有bundles這個文件夾。
網上一通百度,發現有人說從AS3.4.2版本后classes.jar換了路徑build/intermediates/packaged-classes/release
,按照網上說的趕緊去build文件夾里找一下,果然發現了classes.jar~
解決方法:替換zipFile路徑
def zipFile = file('build/intermediates/packaged-classes/release/classes.jar')
然后使用 ./gradlew makeJar
命令打包,問題解決~