我的构建 jar 任务在 3.5.3 年级中运行良好,但在 3.6.1 年级中不起作用。我检查了我的构建文件,但是,/build/intermediates/packaged-classes/
目录奇怪地丢失了。
gradle 脚本:
task buildJar(dependsOn: ['build'], type: Jar) {
doFirst {
manifest {
attributes 'Jar-VersionName': jarVersionName
attributes 'Jar-VersionCode': jarVersionCode
}
}
from zipTree(file('build/intermediates/packaged-classes/release/classes.jar'))
appendix = ""
baseName = "pp"
version = jarVersionName + "_" + jarVersionCode
classifier = "release"
extension = "jar"
destinationDir = file('build/libs/')
}
//dx --dex --output=target.jar origin.jar
task buildDex(dependsOn: ['buildJar'], type: Exec) {
workingDir buildDir.absolutePath + "/libs"
executable "dx"
args "--dex"
args "--output=" + buildJar.archiveName
args buildJar.archiveName
}
错误日志:
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':p2p:buildJar'.
> Cannot expand ZIP '/Users/william/AndroidStudioProjects/Work/lib_plugin/project/build/intermediates/packaged-classes/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
BUILD FAILED in 1s
我环顾四周,显然我可以在这些解决方案之间做出选择,但它们对我来说太旧了。
No release bundle folder after upgrading Android Studio
.jar file not generating in android studio
那么,生成的jar的新路径在哪里呢?
最佳答案
我找到了!当我将 gradle 版本升级到 4.0 时,我在 build/intermediates/aar_main_jar/release/classes.jar
路径中找到了 class.jar
。
所以,完整的构建任务代码如下:
def jarPath = buildDir.absolutePath + "/libs"
def jarBaseName = "plugin"
task buildJar(dependsOn: ['build'], type: Jar) {
doFirst {
manifest {
attributes 'Jar-VersionCode': jarVersionCode
}
}
from zipTree(file('build/intermediates/aar_main_jar/release/classes.jar'))
// [archiveBaseName]-[archiveAppendix]-[archiveVersion]-[archiveClassifier].[archiveExtension]
archiveBaseName = jarBaseName
archiveAppendix = null
archiveVersion = "$jarVersionName-$jarVersionCode"
archiveClassifier = "release"
archiveExtension = "jar"
destinationDirectory = file(jarPath)
}
// dx --dex --output=target.jar origin.jar
task buildDex(dependsOn: ['buildJar'], type: Exec) {
workingDir jarPath
executable "dx"
args "--dex"
args "--output=" + buildJar.archiveFileName.get()
args buildJar.archiveFileName.get()
}
关于android - 在 android gradle 3.6.1 中运行构建任务后未生成 Jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60650584/