在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
命令打包,问题解决~
网友评论