问题描述:
使用Android Studio打jar包的时候,会报classes.jar不存在的异常,详细错误日志如下:
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:makeJar'.
> Cannot expand ZIP 'D:\work\code\AppTrack\app\build\intermediates\bundles\release\classes.jar' as it does not exist.
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Get more help at https://help.gradle.org
解决方法:
这是由于ANDROID STUDIO的版本的问题,CLASSES.JAR的位置发生了改变
-
Android Studio3.1.2之前的版本中的classes.jar是在build/intermediates/bundles/release/路径下面
-
Android Studio3.1.2之后的版本中的classes.jar是在build/intermediates/packaged-classes/release/路径下面
所以,将原先的\intermediates\bundles\release\ 改为\intermediates\packaged-classes\release\就行了
build.gradle的配置
-
Android Studio3.1.2之前的配置:
def SDK_BASENAME = "myJar" def SDK_VERSION = "_V1.0" def sdkDestinationPath = "build" def zipFile = file('build/intermediates/bundles/release/classes.jar') task makeJar(type: Jar) { delete sdkDestinationPath + SDK_BASENAME + SDK_VERSION + ".jar" from zipTree(zipFile) from(project.zipTree("libs/litepal.jar")) from fileTree(dir: 'src/main',includes: ['assets/**'])//将assets目录打入jar包 baseName = SDK_BASENAME + SDK_VERSION destinationDir = file(sdkDestinationPath) } makeJar.dependsOn(deleteBuild, build)
-
Android Studio3.1.2之后的配置:
def SDK_BASENAME = "myJar" def SDK_VERSION = "_V1.0" def sdkDestinationPath = "build" def zipFile = file('build/intermediates/packaged-classes/release/classes.jar') task makeJar(type: Jar) { delete sdkDestinationPath + SDK_BASENAME + SDK_VERSION + ".jar" from zipTree(zipFile) from(project.zipTree("libs/litepal.jar")) from fileTree(dir: 'src/main',includes: ['assets/**'])//将assets目录打入jar包 baseName = SDK_BASENAME + SDK_VERSION destinationDir = file(sdkDestinationPath) } makeJar.dependsOn(deleteBuild, build)