[英]Jar is not generated after running build task in android gradle 3.6.1
我的構建 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
我環顧四周,顯然我可以在這些解決方案之間做出選擇,但它們對我來說太舊了。
那么,生成的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()
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.