GitHub构建Android APK未显式下载SDK可运行,GitLab报错问题咨询
Android项目GitLab CI构建报错:SDK location not found
我有一个Android项目,在GitHub Actions中构建APK的配置如下:
jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 with: fetch-depth: 0 - name: Setup JDK 11 uses: actions/setup-java@v1 with: java-version: '11' - name: Build Application run: | ./gradlew clean assembleDebug
我把它转换成GitLab CI配置后是这样:
stages: - build build: image: openjdk:11 stage: build when: manual script: - ./gradlew assembleDebug artifacts: paths: - app/build/outputs/
但在GitLab构建时出现了错误:
SDK location not found. Define a valid SDK location with an ANDROID_HOME environment variable
我困惑的是,GitHub构建里没有任何下载Android SDK的步骤,为什么它能正常运行,GitLab却报错?
原因解析
GitHub Actions的ubuntu-latest运行环境是预装了Android SDK的,系统环境里已经包含Android开发所需的全部依赖,所以无需额外配置就能直接构建Android项目。
而你在GitLab CI中使用的openjdk:11镜像只是基础的JDK环境,没有预装Android SDK、构建工具等Android项目必需的依赖,因此构建时会找不到SDK路径,触发ANDROID_HOME未定义的报错。
解决方法
换成GitLab官方提供的Android专用镜像,或者自行构建包含Android SDK的镜像。以下是使用官方Android镜像的修改后配置:
stages: - build build: # 使用包含Android SDK的官方镜像,版本可根据项目需求调整 image: registry.gitlab.com/gitlab-org/ci-cd/docker-android:latest stage: build when: manual script: - ./gradlew clean assembleDebug artifacts: paths: - app/build/outputs/
也可以在基础镜像中手动安装Android SDK,但直接使用官方Android镜像更为便捷省心。
内容的提问来源于stack exchange,提问作者lostintranslation
相关产品推荐
相关产品推荐

