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.0\bin\sdkmanager.bat" --licenses"
Error: Could not find or load main class Files
Google no longer serves the tools package, see tools#tools-sdk.
Asking for it fails with Failed to find package 'tools', so it is no longer part of the default value of packages.
If it is requested explicitly, this action skips it with a warning rather than failing the build.
Most of what tools provided now lives in the command line tools, which this action installs and adds to $PATH
regardless of the packages input, so these need no install step at all:
The remaining tools contents have no replacement in the current SDK: android was superseded by sdkmanager and
avdmanager, ProGuard by R8, and monitor, ddms, monkeyrunner
and uiautomatorviewer were dropped without one.
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 15859902 (short version 22.0).
To install a different version, call setup-android with desired long version as the input parameter cmdline-tools-version:
Android SDK is not public domain software, it comes with a license.
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.
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’.
setup-android
This action sets up the Android SDK tools by:
$ANDROID_SDK_ROOTor$HOME/.android/sdk.platform-tools.platform-tools(contains adb) andcmdline-tools/16.0/bin(contains sdkmanager) to$PATH.On Windows 2016 runners, this action also checks if
$ANDROID_SDK_ROOTpath contains spaces. If it does - it moves SDK to a path without spaces. This is needed because spaces are highly problematic:Usage
See action.yml
Basic
Additional packages
Input parameter
packagescontrols which packages this action will install from Android SDK.Default value is
platform-tools, supply an empty string to skip installing additional packages.Additional packages can be installed at a later time by calling sdkmanager manually.
The deprecated
toolspackageGoogle no longer serves the
toolspackage, see tools#tools-sdk. Asking for it fails withFailed to find package 'tools', so it is no longer part of the default value ofpackages. If it is requested explicitly, this action skips it with a warning rather than failing the build.Most of what
toolsprovided now lives in the command line tools, which this action installs and adds to$PATHregardless of thepackagesinput, so these need no install step at all:apkanalyzeravdmanagerlintscreenshot2sdkmanagerretraceresourceshrinkerprofgend8r8The emulator was split out of
toolsinto its own package, request it explicitly if you need it:The remaining
toolscontents have no replacement in the current SDK:androidwas superseded bysdkmanagerandavdmanager, ProGuard by R8, andmonitor,ddms,monkeyrunneranduiautomatorviewerwere dropped without one.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 15859902 (short version 22.0).
To install a different version, call setup-android with desired long version as the input parameter
cmdline-tools-version:Version table
Current cmdline tools version can be found at https://developer.android.com/studio#command-line-tools-only
Android SDK Licenses
Android SDK is not public domain software, it comes with a license.
Input parameter
accept-android-sdk-licensesdecides 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.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-licensescontrols whether license texts should be printed or omitted from the text output. Defaults to ‘true’.Thanks
Based on the project android-problem-matchers-action from @jonasb