AWS CodeBuild构建中Android SDK未识别问题排查求助
解决AWS CodeBuild中Android SDK sdkmanager无法识别SDK根目录的问题
问题根源
错误提示明确要求:sdkmanager必须放置在<SDK根目录>/cmdline-tools/latest/路径下,否则无法自动识别SDK根目录。你的构建脚本中,解压Android命令行工具后,文件直接存放在$ANDROID_HOME/cmdline-tools/下,缺少latest子目录,导致路径不符合官方要求。
修复步骤
修改buildspec.yml的pre_build阶段命令,调整Android SDK的目录结构:
- 在解压命令后新增目录调整步骤,将命令行工具文件移动到
latest子目录中 - 更新PATH环境变量和权限命令的路径,指向
latest/bin
修改后的pre_build阶段关键代码:
pre_build: commands: - echo Installing flutter dependencies - export FLUTTER_SDK=$CODEBUILD_SRC_DIR/flutter-sdk - mkdir $FLUTTER_SDK - git clone https://github.com/flutter/flutter.git $FLUTTER_SDK -b stable - export PATH="$PATH:$FLUTTER_SDK/bin" - flutter precache - echo "Installing Android SDK" - export android_sdk=$CODEBUILD_SRC_DIR/android-sdk - mkdir -p $android_sdk - wget https://dl.google.com/android/repository/commandlinetools-linux-9123335_latest.zip -O android-sdk.zip - unzip -q android-sdk.zip -d $android_sdk # 新增:调整目录结构,满足sdkmanager的路径要求 - mkdir -p $android_sdk/cmdline-tools/latest - mv $android_sdk/cmdline-tools/* $android_sdk/cmdline-tools/latest/ - export ANDROID_HOME=$CODEBUILD_SRC_DIR/android-sdk - export PATH=$PATH:$ANDROID_HOME/cmdline-tools/latest/bin - echo "Checking Android SDK permissions" - chmod +x $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager - flutter config --android-sdk $ANDROID_HOME - sdkmanager --version - yes | sdkmanager --licenses
说明
新版Android命令行工具强制要求cmdline-tools下必须有latest子目录来存放核心工具,这样sdkmanager才能自动关联到SDK根目录。调整目录结构后,后续的sdkmanager --version和许可证接受命令就能正常执行了。
内容的提问来源于stack exchange,提问作者user1134061
相关产品推荐
相关产品推荐

