使用 Jenkins 构建 Android 项目时出现问题(未找到任务)

Posted

技术标签:

【中文标题】使用 Jenkins 构建 Android 项目时出现问题(未找到任务)【英文标题】:Problems building Android project with Jenkins (task not found) 【发布时间】:2020-03-03 11:14:53 【问题描述】:

我在 ubuntu 上使用 jenkins 构建 android 时遇到问题。 应用程序 build.gradle 包含调试和发布。 当我尝试使用 gradlew assembleDebug 或 assembleRelease 构建时,我得到“task not foundTask 'assembleRelease' not found in root project 'My Application'”(而不是清理和组装工作正常)

如果我尝试在 jenkis 工作区文件夹上手动 gradlew assembleDebug,则会出现同样的错误,但我可以在我克隆了 repo 的笔记本电脑上进行构建。

Build.gradle 包含调试和发布:

buildTypes 
    debug
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'),    'proguard-rules.pro'
    
    release 
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android- optimize.txt'), 'proguard-rules.pro'
    

这是文件夹 ls -latr:

drwxr-xr-x  4 jenkins jenkins 4096 Nov  6 22:31 ..
drwxr-xr-x  3 jenkins jenkins 4096 Nov  6 22:31 .idea
-rw-r--r--  1 jenkins jenkins  222 Nov  6 22:31 .gitignore
- rw-r--r--  1 jenkins jenkins 1184 Nov  6 22:31 gradle.properties
drwxr-xr-x  3 jenkins jenkins 4096 Nov  6 22:31 gradle
-rw-r--r--  1 jenkins jenkins  689 Nov  6 22:31 build.gradle
-rw-r--r--  1 jenkins jenkins   51 Nov  6 22:31 settings.gradle
-rw-r--r--  1 jenkins jenkins 2260 Nov  6 22:31 gradlew.bat
drwxr-xr-x  3 jenkins jenkins 4096 Nov  6 22:31 wrapper
drwxr-xr-x  4 jenkins jenkins 4096 Nov  6 22:32 native
drwxr-xr-x  3 jenkins jenkins 4096 Nov  6 22:32 notifications
drwxr-xr-x  3 jenkins jenkins 4096 Nov  6 22:32 daemon
drwxr-xr-x  3 jenkins jenkins 4096 Nov  6 22:33 build-scan-data
drwx------  7 jenkins jenkins 4096 Nov  6 22:33 caches
drwx------  5 jenkins jenkins 4096 Nov  6 22:33 .gradle
-rwxr-xr-x  1 jenkins jenkins 5296 Nov  6 22:41 gradlew
drwxr-xr-x 13 jenkins jenkins 4096 Nov  6 22:41 .
 drwxr-xr-x  8 jenkins jenkins 4096 Nov  6 22:41 .git
 drwxr-xr-x  3 jenkins jenkins 4096 Nov  6 22:48 app

我能做什么?

【问题讨论】:

您可以在从 SCM 签出后立即手动构建包吗? 嗨@MartinZeitler 你的意思是使用詹金斯文件构建? (对不起,我是詹金斯的新手) 这是一场噩梦。在根项目“我的应用程序”中找不到任务“compileDebugSources”。我在这里粘贴了 jenkins 文件:pastebin.com/TbW9xWFQ 【参考方案1】:

在我看来这有点疯狂。我根据@Martin 的建议 b 创建了一个 jenkins 文件 无论如何,发现在 jenkins env 中设置 ANDROID_HOME 是不够的,我不知道为什么。所以我最终在每个阶段都添加了 ANDROID_HOME : 如果有人知道更好的解决方案,请添加评论。

stage('Compile') 
  environment 
       ANDROID_HOME="/home/jenkins-bot/androis-sdk"
       //PATH="$ANDROID_HOME/emulator:$ANDROID_HOME/platform-tools:$PATH"
  
  steps 
    // Compile the app and its dependencies
    sh './gradlew compileDebugSources --scan'
  

【讨论】:

以上是关于使用 Jenkins 构建 Android 项目时出现问题(未找到任务)的主要内容,如果未能解决你的问题,请参考以下文章

在 Jenkins 上构建 Android Studio 项目? android.compileSdkVersion 丢失

在 Jenkins 构建期间动态添加 Android 项目依赖项

jenkins构建项目的错误和原因及其解决方法

使用 Jenkins 构建 Gradle 项目时出错

掌握使用gitlab ci构建Android包的正确方式

Android基于jenkins全自动构建打包---------Windows版本(Android,Jenkins,360加固,Email,QRcode,参数构建,蒲公英)