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

ARM树莓派5的Gitea CI/CD安装Android SDK遇emulator依赖缺失

树莓派5(ARM64)Gitea CI/CD中Android SDK安装报错「未找到键为emulator的依赖包」解决方案

问题场景

在ARM架构的树莓派5上运行Gitea实例,CI/CD流水线安装Android SDK tools与build-tools时,出现「警告:未找到键为emulator的依赖包!」错误。此前在GitHub Actions中生效的--channel=3、引号包裹安装包等方案,在Gitea环境中无效。推测核心原因是ARM64架构无官方预编译的emulator包,需要适配轻量化解决方案。

已尝试方案

  • 使用--channel=3配置指定SDK频道
  • 用引号包裹安装包名称执行安装

CI/CD配置代码

jobs:
  build:
    runs-on: ubuntu-latest
    
    steps:
      - name: Check out repository
        uses: actions/checkout@v4
      
      - name: Set up Node.js
        uses: actions/setup-node@v4
        with:
          node-version: '22'
      
      - name: Install dependencies
        run: npm install
      
      - name: Set up JDK 17
        uses: actions/setup-java@v3
        with:
          java-version: '17'
          distribution: 'zulu'

      - name: Setup Android SDK
        uses: Swisyn/setup-android-sdk@v1
        with:
          packages: ''
      - name: Setup Android SDK Packages
        run: |
          sdkmanager "tools" "platform-tools"
      - name: Build APK
        run: |
          cd android
          chmod +x gradlew
          ./gradlew assembleRelease
          
      - name: Upload APK artifact
        uses: actions/upload-artifact@v4
        with:
          name: app-release-apk
          path: android/app/build/outputs/apk/release/app-release.apk
          if-no-files-found: error

错误输出日志

加载包信息...                                                   
加载本地仓库...                                                      
[                                       ] 3% 加载本地仓库...        
[                                       ] 3% 获取远程仓库...         
[=                                      ] 3% 获取远程仓库...         
[=                                      ] 4% 获取远程仓库...         

警告:XML解析期间出错:
[=                                      ] 4% 获取远程仓库...         

警告:此外,备用加载器解析XML失败。
[=                                      ] 4% 获取远程仓库...         
[=                                      ] 5% 获取远程仓库...         
[==                                     ] 5% 获取远程仓库...         
[==                                     ] 6% 获取远程仓库...         
[==                                     ] 7% 获取远程仓库...         
警告:XML解析期间出错:

[==                                     ] 7% 获取远程仓库...         

警告:此外,备用加载器解析XML失败。
[==                                     ] 7% 获取远程仓库...         
[===                                    ] 8% 获取远程仓库...         
[===                                    ] 8% 计算更新...               
[===                                    ] 10% 计算更新...              

警告:未找到键为emulator的依赖包!
[===                                    ] 10% 计算更新...              

警告:无法计算完整的依赖项列表。

解决方案

方案1:用--no-emulator参数跳过模拟器依赖检查

Android SDK官方未提供ARM64架构的emulator包,可通过sdkmanager的--no-emulator参数强制跳过所有模拟器相关依赖,避免依赖计算失败。修改Setup Android SDK Packages步骤为:

sdkmanager --no-emulator "tools" "platform-tools" "build-tools;34.0.0" "platforms;android-34"

按需调整build-tools和platforms的版本号即可。

方案2:直接使用ARM64版Command Line Tools

绕开第三方action的兼容性问题,直接下载官方ARM64架构的Command Line Tools:

# 下载ARM64版Command Line Tools
wget https://dl.google.com/android/repository/commandlinetools-linux-10406996_latest.zip
unzip commandlinetools-linux-10406996_latest.zip -d cmdline-tools
mkdir -p $ANDROID_HOME/cmdline-tools/latest
mv cmdline-tools/* $ANDROID_HOME/cmdline-tools/latest/
# 配置环境变量
export PATH=$PATH:$ANDROID_HOME/cmdline-tools/latest/bin:$ANDROID_HOME/platform-tools
# 安装所需包并跳过emulator
sdkmanager --no-emulator "platform-tools" "build-tools;34.0.0" "platforms;android-34"

方案3:修改Gradle配置禁用emulator依赖拉取

在项目android/build.gradle中添加配置,禁止Gradle自动拉取emulator相关依赖:

android {
    compileSdkVersion 34
    buildToolsVersion "34.0.0"

    defaultConfig {
        minSdkVersion 21
        targetSdkVersion 34
    }

    components {
        onEach { details ->
            if (details.id.group == 'com.android' && details.id.name == 'emulator') {
                details.skip()
            }
        }
    }
}

配合sdkmanager --no-emulator使用,可彻底规避emulator依赖问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 14:17:16