You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GitLab CI构建Android项目时NDK编译失败问题求助

解决GitLab CI中Android NDK构建失败的问题

问题分析

报错信息明确指向两个核心缺失:

  • 找不到make程序:NDK构建依赖GNU make编译C/C++代码
  • 找不到file命令:ndk-build脚本执行时需要该工具做文件类型判断

本地环境能正常构建,是因为已经预装了这些工具,但GitLab CI的默认构建镜像通常不会包含这类编译依赖组件。

解决方案

在你的.gitlab-ci.yml中添加前置步骤,安装所需的依赖工具。如果使用的是Debian/Ubuntu系的镜像(GitLab CI默认runner多为此类),可在构建前执行以下操作:

before_script:
  - apt-get update -y
  - apt-get install -y build-essential file

完整.gitlab-ci.yml示例(适配Android构建场景)

如果你的构建环境需要自行安装Android SDK和NDK,可参考以下配置:

image: openjdk:11-jdk

stages:
  - build

build:
  stage: build
  before_script:
    - apt-get update -y
    - apt-get install -y build-essential file wget unzip
    # 安装Android命令行工具
    - wget https://dl.google.com/android/repository/commandlinetools-linux-9477386_latest.zip
    - unzip commandlinetools-linux-9477386_latest.zip
    - mkdir -p android-sdk/cmdline-tools
    - mv cmdline-tools android-sdk/cmdline-tools/latest
    - export ANDROID_HOME=$(pwd)/android-sdk
    - export PATH=$PATH:$ANDROID_HOME/cmdline-tools/latest/bin:$ANDROID_HOME/platform-tools
    # 安装指定版本的SDK组件和NDK
    - sdkmanager --sdk_root=$ANDROID_HOME "platforms;android-33" "build-tools;33.0.2" "ndk;23.1.7779620"
  script:
    - ./gradlew assembleDebug

关键说明

  • build-essential包包含GNU make、gcc等基础编译工具,满足NDK构建的核心需求
  • file工具是ndk-build脚本执行的必要依赖,可解决line 151: file: command not found报错
  • 若使用专门的Android CI镜像,部分依赖可能已预装,但仍需确认make和file是否存在,缺失时同样需要执行安装命令

内容的提问来源于stack exchange,提问作者Zainal Fahrudin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 06:54:22