We will soon be removing some offline Google Maven repositories from our Android convenience images.
Background
Earlier this year, Google moved their Android Support Library, Firebase, and Google Play Services artifacts to an online Maven repository. Users with a reasonably up-to-date build process and dependency tree will thus have no need for the offline copy.
Using the online repository will provide a superior Android development experience on CircleCI:
The offline repositories installed with sdkmanager extras; have no versions of Firebase or Play Services newer than 11.0.0
The online Maven repository for the Android Support Library has versions dating back to 18.0.0
The offline extras;google;google_play_services repository has no actual Maven artifacts and only contains documentation and example code, which is typically unnecessary in a CI environment
These changes will drastically reduce build times: circleci/android images will be nearly 2GB smaller in size and will thus download and spin up much more quickly
Possible required changes for users
If your Android project has not been updated recently, it may fail with the updated Android images. However, the steps to mitigate these changes are simple:
For projects using Gradle versions 4.1 or newer: add google() to the repositories section of build.gradle
For older versions of Gradle: add maven { url: 'https://maven.google.com' } to the repositories section of build.gradle
Implementation
To avoid overwriting existing tags and potentially breaking customer builds for projects dependent on the offline repositories, we will be altering our tagging scheme for Android images with this change.
New Android image tags will no longer have -alpha appended to them, and, -alpha-tagged images will no longer receive updates.
This thread will be updated when these changes have been merged into production. Our target date is Friday, December 14th.
So anyone using an old NDK tag (e.g., api-27-ndk-r17b) will also not receive future updates.
Restating this point because we recently updated our images to mitigate an upstream change to the Android SDK Manager, and folks who are still using the old alpha or ndk-r17b tags will not get updated images.
You can see our new tagging scheme in action here: