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

在GitHub Action构建Ionic Android APK时遇无法启动Android Studio问题

在GitHub Action中构建Ionic Angular Android项目的解决方案

核心结论:不需要安装完整Android Studio

GitHub Action的Ubuntu/macOS运行器已经预装了Android SDK核心命令行工具,完整Android Studio是带GUI的桌面软件,CI环境完全用不上,反而会浪费资源。你的问题本质是环境变量配置不全、命令触发了GUI启动,以及文件权限问题。


解决"无法启动Android Studio"的失败问题

  1. 替换触发GUI的构建命令
    不要使用会唤起Android Studio的命令,改用纯命令行构建参数:

    • 开发版APK(Cordova):ionic cordova build android --debug --no-build
    • 开发版APK(Capacitor):npx cap sync android && npx cap build android --debug --no-open
    • 正式版APK(Cordova):ionic cordova build android --release --no-build
    • 正式版APK(Capacitor):npx cap sync android && npx cap build android --release --no-open
      关键参数--no-open(Capacitor)或--no-build(Cordova)会避免触发Android Studio GUI。
  2. 正确配置Android SDK环境变量
    在工作流中添加SDK环境配置步骤,确保命令行工具能被找到:

    - name: Set up Java
      uses: actions/setup-java@v4
      with:
        java-version: '17'
        distribution: 'temurin'
        cache: 'gradle'
    - name: Configure Android SDK
      run: |
        echo "ANDROID_SDK_ROOT=$ANDROID_HOME" >> $GITHUB_ENV
        echo "$ANDROID_HOME/platform-tools" >> $GITHUB_PATH
        echo "$ANDROID_HOME/cmdline-tools/latest/bin" >> $GITHUB_PATH
        # 安装项目所需的Android版本和构建工具
        sdkmanager --install "platforms;android-34" "build-tools;34.0.0" "extras;google;m2repository" "extras;android;m2repository"
        # 自动同意SDK许可协议
        sdkmanager --licenses || true
    

解决"Generate the Android App Bundle"的权限拒绝错误

直接给gradle执行脚本添加可执行权限即可,在构建前运行:

- name: Fix gradlew permissions
  run: chmod +x ./android/gradlew

(如果是Cordova项目,路径改为platforms/android/gradlew)


完整工作流示例(Capacitor版本)

name: Build Android APK & App Bundle
on: [push]

jobs:
  build-android:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v4

      - name: Set up Node.js
        uses: actions/setup-node@v4
        with:
          node-version: '20'
          cache: 'npm'

      - name: Install dependencies
        run: npm install

      - name: Build Angular project
        run: ng build --configuration production

      - name: Set up Java
        uses: actions/setup-java@v4
        with:
          java-version: '17'
          distribution: 'temurin'
          cache: 'gradle'

      - name: Configure Android SDK
        run: |
          echo "ANDROID_SDK_ROOT=$ANDROID_HOME" >> $GITHUB_ENV
          echo "$ANDROID_HOME/platform-tools" >> $GITHUB_PATH
          echo "$ANDROID_HOME/cmdline-tools/latest/bin" >> $GITHUB_PATH
          sdkmanager --install "platforms;android-34" "build-tools;34.0.0" "extras;google;m2repository" "extras;android;m2repository"
          sdkmanager --licenses || true

      - name: Sync Capacitor
        run: npx cap sync android

      - name: Fix gradlew permissions
        run: chmod +x ./android/gradlew

      - name: Build Android Dev APK
        run: npx cap build android --debug --no-open

      - name: Build Android Release APK
        run: npx cap build android --release --no-open

      - name: Generate Android App Bundle
        run: cd android && ./gradlew bundleRelease

      - name: Upload build artifacts
        uses: actions/upload-artifact@v4
        with:
          name: android-build-outputs
          path: |
            android/app/build/outputs/apk/debug/*.apk
            android/app/build/outputs/apk/release/*.apk
            android/app/build/outputs/bundle/release/*.aab

内容的提问来源于stack exchange,提问作者Gregory Boutte

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 11:11:10