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

如何正确配置Android项目的Bitbucket Pipelines?配置报错求助

解决Bitbucket Pipelines中Android SDK许可协议问题及正确配置指南

嘿,我来帮你搞定这个SDK许可的坑!这个错误我在帮开发者配置Android流水线时碰到过好多次,咱们一步步拆解问题、解决它。

先分析你当前脚本的问题

你的build.sh里有两个关键问题导致了许可错误:

  1. 变量引用格式错误:{$ANDROID_HOME}的写法不对,应该是${ANDROID_HOME}(大括号要包裹变量名,不是反过来)
  2. 许可内容无效:<My license>是占位符,必须替换成Android SDK官方要求的许可哈希值,否则系统识别不到你接受了协议

修正后的build.sh脚本

把你的脚本换成下面这个,里面的许可哈希是官方认可的常用值(适配大部分Android SDK版本):

#!/bin/sh

# 创建许可目录并写入正确的SDK许可协议
mkdir -p "${ANDROID_HOME}/licenses"
# Android SDK正式版许可哈希
echo -e "8933bad161af4178b1185d1a37fbf41ea5269c55" > "${ANDROID_HOME}/licenses/android-sdk-license"
# Android SDK预览版许可哈希
echo -e "84831b9409646a918e30573bab4c9c91346d8abd" > "${ANDROID_HOME}/licenses/android-sdk-preview-license"

# 确保gradlew有可执行权限(避免构建时权限报错)
chmod +x ./gradlew

# 执行生产环境release构建
./gradlew assembleProductionRelease

完整的Bitbucket Pipelines配置文件(bitbucket-pipelines.yml)

除了脚本,你还需要一个标准的流水线配置文件来指定环境和步骤:

image: atlassian/android-sdk:29

pipelines:
  default:
    - step:
        name: Build Android Production Release
        caches:
          - gradle  # 缓存gradle依赖,大幅缩短后续构建时间
        script:
          - ./build.sh
        artifacts:
          - app/build/outputs/apk/production/release/*.apk  # 保留构建产物,方便下载

关键注意事项

  • 镜像版本适配:atlassian/android-sdk:29是包含SDK 29的官方镜像,如果你的项目需要更高版本(比如SDK 33),可以换成对应版本的镜像
  • 许可哈希更新:如果后续SDK版本要求新的许可哈希,你可以在本地运行android-sdk/tools/bin/sdkmanager --licenses,接受许可后查看本地$ANDROID_HOME/licenses目录下的哈希值,替换到脚本里即可
  • 文件权限:确保build.sh在仓库里有可执行权限(本地先运行chmod +x build.sh再提交代码)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:52:58