在 Jenkins 的任务 gradle 中找不到 assembleRelease

Posted

技术标签:

【中文标题】在 Jenkins 的任务 gradle 中找不到 assembleRelease【英文标题】:assembleRelease not found in task gradle in Jenkins 【发布时间】:2020-01-25 16:38:33 【问题描述】:

我有一个安卓项目。它有 2 种口味,分别名为 GooglePlay 和 Cafebazzar。

在使用 android Studio 时,我看到了 assembleRelease 和 assembleCafeBazzar 和 assembleGooglePlay。

当我在 jenkins 中使用 ./gradlew -q tasks --all 时,我在我的任务中看不到 assembleRelease。 只是我看到了 assemble。 我使用 Jenkins 来构建项目。如何在 Jenkins 中看到 assembleRelease?

    + ./gradlew -q tasks --all

------------------------------------------------------------
Tasks runnable from root project
------------------------------------------------------------

Android tasks
-------------
app:sourceSets - Prints out all the source sets defined in this project.
core:sourceSets - Prints out all the source sets defined in this project.
skeleton:sourceSets - Prints out all the source sets defined in this project.

Build tasks
-----------
app:assemble - Assembles all variants of all applications and secondary packages.
core:assemble - Assembles all variants of all applications and secondary packages.
skeleton:assemble - Assembles all variants of all applications and secondary packages.
app:assembleAndroidTest - Assembles all the Test applications.
core:assembleAndroidTest - Assembles all the Test applications.
skeleton:assembleAndroidTest - Assembles all the Test applications.
app:build - Assembles and tests this project.
core:build - Assembles and tests this project.
skeleton:build - Assembles and tests this project.
app:buildDependents - Assembles and tests this project and all projects that depend on it.
core:buildDependents - Assembles and tests this project and all projects that depend on it.
skeleton:buildDependents - Assembles and tests this project and all projects that depend on it.
app:buildNeeded - Assembles and tests this project and all projects it depends on.
core:buildNeeded - Assembles and tests this project and all projects it depends on.
skeleton:buildNeeded - Assembles and tests this project and all projects it depends on.
app:clean - Deletes the build directory.
core:clean - Deletes the build directory.
skeleton:clean - Deletes the build directory.
app:cleanBuildCache - Deletes the build cache directory.
core:cleanBuildCache - Deletes the build cache directory.
skeleton:cleanBuildCache - Deletes the build cache directory.

【问题讨论】:

我们在 GitLab CI 中使用 Docker 执行器遇到了同样的问题。有消息吗? 【参考方案1】:

我有同样的问题,当我检查我的项目时,“assembleRelease”不能作为任务使用。 当我在 Android Studio 中打开项目并选择“与 gradle 同步”时,会有一些活动,之后我可以从命令行执行“gradlew assembleRelease”。

我不知道“与 gradle 同步”到底是做什么的。似乎有一个命令曾经做过类似的事情,但它似乎不再可用。

编辑: 似乎文件 local.properties 是通过运行“与 gradle 文件同步”创建的。我创建了一个示例来在 googles issuetracker 中重现该问题,似乎该文件在 assembleRelease 是否可用之间有所不同。

编辑2: Fastlane 现在正在运行,我在安装过程中将 local.properties 文件复制到构建目录中。 根据对我的类似问题Gradle task assembleRelease not found in CI build, works with Android Studio 的评论,这是因为未设置 ANDROID_HOME。

【讨论】:

以上是关于在 Jenkins 的任务 gradle 中找不到 assembleRelease的主要内容,如果未能解决你的问题,请参考以下文章

在根项目中找不到任务“publishApkRelease”

在根项目中找不到任务“publishApkRelease”

在项目“:app”中找不到任务“prepareKotlinBuildScriptModel”

Gradle在本地Maven存储库中找不到现有的依赖项

在根项目中找不到 Android Studio 0.8 任务组合

在 git jenkins 中找不到存储库