如何解决circleci2.0 android build上缺少的android构建工具?

时间:2018-03-10 18:16:03

标签: android build.gradle android-build circleci-2.0

我正在使用circleci 2.0运行Android构建,并使用failed to find Build Tools revision 24.0.1泊坞窗图像获取有关缺少构建工具circleci/android:api-24-node8-alpha的错误。

我找到了一个旧的解决方案,但它的目标是1.0 cicrcleci而不是2.0。 - https://discuss.circleci.com/t/installing-android-build-tools-23-0-2/924

我在问题中尝试了修复,但在{YAML>中似乎没有按照上述链接中的建议选择dependencies

问题: 知道为什么构建工具没有在circleci / android docker镜像中被选中吗?

错误是完全在circleci工作流程中得到如下:

command: ./gradlew androidDepedencies

错误:

  

配置> 2/3 projectsFAILURE:构建因异常而失败。   * 什么地方出了错:   配置项目':app'时出现问题。   找不到Build Tools修订版24.0.1

这是我的Android工作规范和my repo config.yam l:

的链接
 android:
    working_directory: ~/repo/android
    docker:
      - image: circleci/android:api-24-node8-alpha
    dependencies:
      pre:
        - echo y | android update sdk --no-ui --all --filter "tools"
        - echo y | android update sdk --no-ui --all --filter "build-tools-24.0.1"
    steps:
      - checkout:
          path: ~/repo
      - restore_cache:
          key: jars-{{ checksum "build.gradle" }}-{{ checksum  "app/build.gradle" }}
      - attach_workspace:
          at: ~/repo
      - run: echo 'export TERM=xterm' >> $BASH_ENV
      - run: sudo chmod +x ./gradlew
      - run: ./gradlew androidDepedencies    
      - run: ./gradlew assembleRelease

1 个答案:

答案 0 :(得分:0)

我认为在CCI2.0中可以避免'依赖关系'。

  

依赖关系:         前:            - echo y | android update sdk --no-ui --all --filter“tools”            - echo y | android update sdk --no-ui --all --filter“build-tools-24.0.1”

如您所知,CCI2.0适用于基于docker image的系统。您可以找到泊坞窗图像文件herehere。 如果查看DockerFile,您可以看到所有接受许可证的代码并更新SDKManager。

您可能需要按照

之类的步骤操作
  • 代码签出
  • 恢复缓存
  • 下载依赖项
  • 保存缓存
  • 汇编发布
steps:
  - checkout
  - restore_cache:
      key: jars-{{ checksum "build.gradle" }}-{{ checksum "app/build.gradle" }}
  - run:
      name: Download Dependencies
      command: |
              sudo chmod +x gradlew
              ./gradlew androidDependencies
  - save_cache:
      paths:
        - ~/.gradle
      key: jars-{{ checksum "build.gradle" }}-{{ checksum  "app/build.gradle" }}
  - run:
      name: Take Build
      command: |
           ./gradlew clean
           ./gradlew assembleRelease

您可以找到示例配置文件here