2020-07-14 08:41:00 -07:00
# setup-android
2020-01-03 02:37:01 -08:00
2020-08-17 10:44:06 -07:00
![Build & Test ](https://github.com/android-actions/setup-android/workflows/Build%20&%20Test/badge.svg )
This action sets up the Android SDK tools by:
2023-09-24 17:04:50 -07:00
- Downloading the SDK commandline tools, if the current version (11.0) is not found in either `$ANDROID_SDK_ROOT` or `$HOME/.android/sdk` .
2022-08-03 06:44:44 -07:00
- Accepting the SDK licenses.
- Installing `tools` and `platform-tools` .
2023-09-24 17:04:50 -07:00
- Adding `platform-tools` (contains adb) and `cmdline-tools/11.0/bin` (contains sdkmanager) to `$PATH` .
2022-08-03 06:44:44 -07:00
- Setting up problem [matchers ](/matchers.json ).
On Windows 2016 runners, this action also checks if `$ANDROID_SDK_ROOT` path contains spaces.
If it does - it moves SDK to a path without spaces. This is needed because spaces are highly problematic:
```
C:\windows\system32\cmd.exe /D /S /C ""C:\Program Files (x86)\Android\android-sdk\cmdline-tools\3.0\bin\sdkmanager.bat" --licenses"
Error: Could not find or load main class Files
```
2020-08-17 10:44:06 -07:00
# Usage
See [action.yml ](action.yml )
## Basic
```yaml
steps:
2023-11-21 11:25:09 -08:00
- uses: actions/checkout@v4
2020-08-17 10:44:06 -07:00
2023-09-24 17:53:50 -07:00
- name: Set up JDK 17
2022-04-21 19:44:03 -07:00
uses: actions/setup-java@v3
2020-08-17 10:44:06 -07:00
with:
2023-06-01 08:20:03 -07:00
java-version: '17'
distribution: 'temurin'
2020-08-17 10:44:06 -07:00
- name: Setup Android SDK
2023-09-24 18:30:57 -07:00
uses: android-actions/setup-android@v3
2020-08-17 10:44:06 -07:00
- name: Build SampleApplication
run: ./gradlew --no-daemon build
```
2023-11-21 12:41:46 -08:00
## Additional packages
By default, sdkmanager installs "tools" and "platform-tools" packages. To install additional packages, call sdkmanager manually:
```yaml
- name: Setup Android SDK
uses: android-actions/setup-android@v3
- run: sdkmanager "ndk;26.1.10909125" "cmake;3.22.1"
```
2023-11-21 11:18:33 -08:00
## SDK Version selection
Command line tools are versioned using two variables - short and long.
Long one is the build number, used in the zip URL, short one is the human friendly version name.
By default, setup-android installs version 10406996 (short version 11.0).
To install a different version, call setup-android with desired long version as the input parameter `cmdline-tools-version` :
```yaml
- name: Setup Android SDK
uses: android-actions/setup-android@v3
with:
cmdline-tools-version: 8512546
```
#### Version table
| Short version | Long version |
| --- | --- |
| 11.0 | 10406996 |
| 10.0 | 9862592 |
| 9.0 | 9477386 |
| 8.0 | 9123335 |
| 7.0 | 8512546 |
Current cmdline tools version can be found at https://developer.android.com/studio#command-line-tools-only
2020-01-03 12:38:11 -08:00
2023-11-21 12:08:54 -08:00
2023-11-21 12:35:25 -08:00
# Android SDK Licenses
2023-11-21 12:08:54 -08:00
2023-11-21 12:35:25 -08:00
Android SDK (unsurprisingly) is not public domain software, it comes with a license.
2023-11-21 12:08:54 -08:00
2023-11-21 12:35:25 -08:00
Input parameter `accept-android-sdk-licenses` decides if Android SDK licenses should be agreed to on behalf of the user of this action.
Default option is 'yes', because otherwise SDK is unusable until said licenses are agreed to.
2023-11-21 12:08:54 -08:00
2023-11-21 12:35:25 -08:00
licenses are quite long, to prevent a wall of text in the action output, licenses can be agreed to silently.
Input parameter `log-accepted-android-sdk-licenses` controls whether license texts should be printed or omitted from the text output. Defaults to 'true'.
2023-11-21 12:08:54 -08:00
2020-07-14 08:41:00 -07:00
# Thanks
Based on the project [android-problem-matchers-action ](https://github.com/jonasb/android-problem-matchers-action ) from [@jonasb ](https://github.com/jonasb )