在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版本,使用這個(gè)命令進(jìn)行打包jar是沒問題的,直到我更新了as版本3.5.3,我再去通過makeJar打包報(bào)錯(cuò): Cannot expand ZIP '/Users/xxxxxx/build/intermediates/bundles/default/classes.jar' as it does not exist.去build文件夾下看一下,根本沒有bundles這個(gè)文件夾。
網(wǎng)上一通百度,發(fā)現(xiàn)有人說從AS3.4.2版本后classes.jar換了路徑build/intermediates/packaged-classes/release,按照網(wǎng)上說的趕緊去build文件夾里找一下,果然發(fā)現(xiàn)了classes.jar~
解決方法:替換zipFile路徑
def zipFile = file('build/intermediates/packaged-classes/release/classes.jar')
然后使用 ./gradlew makeJar命令打包,問題解決~