CircleCI - 找不到Android Studio项目的SDK位置

时间:2017-10-03 10:08:59

标签: android circleci

尝试在CircleCI上构建项目时,在gradle构建期间发生以下错误。这个问题的原因是什么?我正在运行 CircleCI 2.0

  

失败:构建因异常而失败。

     
      
  • 出了什么问题:配置项目时遇到了问题':app'。

         
        

    找不到SDK位置。使用sdk.dir在local.properties文件中或使用ANDROID_HOME环境变量定义位置。

      
  •   
  • 尝试:使用--stacktrace选项运行以获取堆栈跟踪。使用--info或--debug选项运行以获得更多日志输出。

  •   
  • https://help.gradle.org

  • 获取更多帮助   
     

18秒内建立失败退出代码1

这就是我的config.yml的样子:

# Java Gradle CircleCI 2.0 configuration file
#
# Check https://circleci.com/docs/2.0/language-java/ for more details
#
version: 2
jobs:
  build:
    docker:
      # specify the version you desire here
      - image: circleci/openjdk:8-jdk

      # Specify service dependencies here if necessary
      # CircleCI maintains a library of pre-built images
      # documented at https://circleci.com/docs/2.0/circleci-images/
      # - image: circleci/postgres:9.4

    working_directory: ~/repo

    environment:
      # Customize the JVM maximum heap limit
      JVM_OPTS: -Xmx3200m
      TERM: dumb

    steps:
      - checkout

      # Download and cache dependencies
      - restore_cache:
          keys:
          - v1-dependencies-{{ checksum "build.gradle" }}
          # fallback to using the latest cache if no exact match is found
          - v1-dependencies-

      - run: gradle dependencies

      - save_cache:
          paths:
            - ~/.m2
          key: v1-dependencies-{{ checksum "build.gradle" }}

      # run tests!
      - run: gradle test

2 个答案:

答案 0 :(得分:5)

CircleCI for Android提供了sample configuration,它可以处理您遇到的SDK问题。我不确定为什么他们在设置新项目时不会显示此选项。

基本上,当您设置一个新项目以遵循CircleCI时,您可能选择了Gradle(Java)选项。这并不专门针对Android,所以这就是为什么它抱怨缺少SDK。

上面链接的示例配置如下所示(最重要的部分是指定的docker镜像,CircleCI文档对每行的功能有很好的解释):

version: 2
jobs:
  build:
    working_directory: ~/code
    docker:
      - image: circleci/android:api-25-alpha
    environment:
      JVM_OPTS: -Xmx3200m
    steps:
      - checkout
      - restore_cache:
          key: jars-{{ checksum "build.gradle" }}-{{ checksum  
"app/build.gradle" }}
      - run:
          name: Download Dependencies
          command: ./gradlew androidDependencies
      - save_cache:
          paths:
            - ~/.gradle
          key: jars-{{ checksum "build.gradle" }}-{{ checksum  
"app/build.gradle" }}
      - run:
          name: Run Tests
          command: ./gradlew lint test
      - store_artifacts:
          path: app/build/reports
          destination: reports
      - store_test_results:
          path: app/build/test-results

希望你能尽快建立起来!

答案 1 :(得分:2)

我用过它,它对我有用。 最初一直有索引问题。代码未正确编入索引。这可能是某人的问题

version: 2
jobs:
  build:
working_directory: ~/code
docker:
  - image: circleci/android:api-25-alpha
environment:
  JVM_OPTS: -Xmx3200m
steps:
  - checkout
  - restore_cache:
      key: jars-{{ checksum "build.gradle" }}-{{ checksum  "app/build.gradle" }}
  - run:
     name: Chmod permissions #if permission for Gradlew Dependencies fail, use this.
     command: sudo chmod +x ./gradlew
  - run:
      name: Download Dependencies
      command: ./gradlew androidDependencies
  - save_cache:
      paths:
        - ~/.gradle
      key: jars-{{ checksum "build.gradle" }}-{{ checksum  "app/build.gradle" }}
  - run:
      name: Run Tests
      command: ./gradlew lint test
  - store_artifacts:
      path: app/build/reports
      destination: reports
  - store_test_results:
      path: app/build/test-results