Jay
Jay

Reputation: 5074

CircleCI - SDK location not found for Android Studio project

While attempting to build the project on CircleCI, the following error occurs during the gradle build. What is the cause for this issue? I am running CircleCI 2.0.

FAILURE: Build failed with an exception.

  • What went wrong: A problem occurred configuring project ':app'.

    SDK location not found. Define location with sdk.dir in the local.properties file or with an ANDROID_HOME environment variable.

  • Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

  • Get more help at https://help.gradle.org

BUILD FAILED in 18s Exited with code 1

This is what my config.yml looks like:

# 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

Upvotes: 4

Views: 3289

Answers (2)

Francis Ocholi
Francis Ocholi

Reputation: 31

I used this and it worked for me. Initially had an indexing issue all along. The code wasn't indexed properly. This could be someone's issue

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

Upvotes: 2

Mark
Mark

Reputation: 525

There's a sample configuration provided by CircleCI for Android, which handles the SDK issue you're running into. I'm not sure why they don't show this option when setting up a new Project to follow.

Basically when you set up a new project to follow on CircleCI, you probably chose the Gradle (Java) option. This doesn't specifically target Android, so that's why it's complaining about a missing SDK.

The sample configuration linked above looks like the below (the most important part being the docker image specified, the CircleCI doc has a good explanation of what each line is doing):

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

Hope you get building OK soon!

Upvotes: 5

Related Questions