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

GitLab流水线执行fastlane build_apk失败,Android SDK组件安装异常

解决GitLab流水线构建React Native Android APK失败的问题

核心问题分析

当前报错的关键原因有两个:

  • GitLab CI变量中的Android SDK版本配置被注释,导致ANDROID_COMPILE_SDK和ANDROID_BUILD_TOOLS未定义,安装SDK组件时无法定位到正确版本
  • Android命令行工具的路径结构配置不符合新版规范,导致sdkmanager无法正确解析组件依赖

具体修复步骤

1. 启用并修正CI变量配置

打开你的gitlab.config.yml,取消注释并修正Android SDK相关变量,确保指定报错中要求的build-tools;30.0.3:

variables:
  LANG: "en_US.UTF-8"
  ANDROID_COMPILE_SDK: "30"  # 对应build-tools 30.0.3的编译SDK版本
  ANDROID_BUILD_TOOLS: "30.0.3"
  # ANDROID_SDK_TOOLS: "9477386"  # 可保留注释,当前下载的是最新版命令行工具
  SECURE_FILES_DOWNLOAD_PATH: './'
  ANDROID_KEYSTORE_FILE: '/builds/X/app/android/my-upload-key.keystore'

2. 调整Android命令行工具的路径结构

新版Android命令行工具要求目录结构为cmdline-tools/latest,修改before_script中的解压和路径配置部分:

- export ANDROID_SDK_ROOT="${PWD}/android-home"
- install -d $ANDROID_SDK_ROOT
- wget --output-document=$ANDROID_SDK_ROOT/cmdline-tools.zip https://dl.google.com/android/repository/commandlinetools-linux-8512546_latest.zip
- pushd $ANDROID_SDK_ROOT
- unzip -d cmdline-tools cmdline-tools.zip
- pushd cmdline-tools
- mv cmdline-tools latest  # 改为符合规范的latest目录
- popd
- popd
- export PATH=$PATH:${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/  # 更新PATH指向latest/bin

3. 修正SDK组件安装命令

调整sdkmanager安装命令,移除不必要的--include_obsolete(除非确实需要旧版组件),并确保命令顺序合理:

# 接受所有许可证
- yes | sdkmanager --licenses
# 先安装平台组件
- sdkmanager "platforms;android-${ANDROID_COMPILE_SDK}"
# 安装平台工具
- sdkmanager "platform-tools"
# 安装指定版本的Build Tools
- sdkmanager "build-tools;${ANDROID_BUILD_TOOLS}"

4. 优化Fastlane构建任务(可选)

确保Fastlane的build_apk任务使用正确的编译配置,若项目的build.gradle中指定了compileSdkVersion为30,无需修改;如果需要统一版本,可在gradle参数中明确指定:

lane :build_apk do |options|
  gradle(
    task: "assemble",
    build_type: "Release",
    properties: {
      "android.compileSdkVersion" => ENV["ANDROID_COMPILE_SDK"],
      "android.buildToolsVersion" => ENV["ANDROID_BUILD_TOOLS"]
    }
  )
end

验证步骤

修改完成后,重新触发GitLab流水线:

  1. 检查sdkmanager --version是否正常输出版本号
  2. 确认build-tools;30.0.3被成功安装(可在流水线日志中搜索该组件名)
  3. 观察fastlane build_apk阶段是否能正常完成gradle配置和编译

内容的提问来源于stack exchange,提问作者Wee Li

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 17:05:18