在Android Gradle 3.6.1中运行构建任务后未生成Jar [英] Jar is not generated after running build task in android gradle 3.6.1

查看:58
本文介绍了在Android Gradle 3.6.1中运行构建任务后未生成Jar的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的build jar任务在3.5.3年级可以正常工作,但在3.6.1年级不起作用.我检查了我的构建文件,但是,奇怪地缺少了/build/intermediates/packaged-classes/目录.

My build jar task works fine in grade 3.5.3, but it doesn't work in grade 3.6.1. I checked my build files, however, the /build/intermediates/packaged-classes/ dir is weirdly missing.

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

我环顾四周,显然我可以在这些解决方案之间进行选择,但是它们对我来说太老了.

I've looked around and apparently I've got the choice between these solutions, but they are so old solution for me.

升级Android Studio后没有发布包文件夹

.jar文件未在Android Studio中生成

Gradle不生成jar

那么,生成的jar的新路径在哪里?

So, where is the new path of the generated jar?

推荐答案

我找到了!当我将gradle版本升级到4.0时,我在 build/intermediates/aar_main_jar/release/classes.jar 路径中找到了 class.jar .

I found it! When I upgrade gradle version to 4.0, I find the class.jar in build/intermediates/aar_main_jar/release/classes.jar path.

因此,完整的构建任务代码如下:

so, the full build task code is below:

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 Gradle 3.6.1中运行构建任务后未生成Jar的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆