androidgradlecircleci

How to make CircleCI use a specific Gradle version?


It's still using 2.14.1 while I wanted 3.3 in my case:
despite the following circle.yml:

machine:
  environment:
    PATH: "~/$CIRCLE_PROJECT_REPONAME/gradle-3.3/bin:$PATH"
    TERM: "dumb"
    ADB_INSTALL_TIMEOUT: "10"
    GRADLE_OPTS: '-Dorg.gradle.jvmargs="-Xmx2048m -XX:+HeapDumpOnOutOfMemoryError"'
  java:
    version: oraclejdk8

dependencies:
  pre:
    # Install Android stuffs
    - wget "https://services.gradle.org/distributions/gradle-3.3-bin.zip"; unzip gradle-3.3-bin.zip
    - echo y | android update sdk --no-ui --all --filter tool
    - echo y | android update sdk --no-ui --all --filter extra-android-m2repository
    - echo y | android update sdk --no-ui --all --filter extra-android-support
    - echo y | android update sdk --no-ui --all --filter extra-google-google_play_services
    - echo y | android update sdk --no-ui --all --filter extra-google-m2repository
    - echo y | android update sdk --no-ui --all --filter android-25
    - echo y | android update sdk --no-ui --all --filter build-tools-25.0.2
test:
  override:
    # start the emulator
    - emulator -avd circleci-android19 -no-audio -no-window:
        background: true
        parallel: true
    # wait for it to have booted
    - circle-android wait-for-boot
    # unlock the emulator screen
    - sleep 30
    - adb shell input keyevent 82

Wrong version is likely the version why gradle dependencies is failing for me here:
enter image description here


Solution

  • In yourProject/gradle/wrapper/gradle-wrapper.properties", you can define gradle version. Like this:

    distributionUrl=https\://services.gradle.org/distributions/gradle-3.4-all.zip `

    Update

    I do not think it's necessary to wget "https://services.gradle.org/distributions/gradle-3.3-bin.zip" because when the CI invokes ./gradlew, it will download gradle automatically.