Describe the bug
sdkmanager is missing from Android SDK - It's needed to install different version of CMake
Virtual environments affected
Expected behavior
Actual behavior
total 44K
drwxr-xr-x 11 root root 4.0K Sep 30 17:28 .
drwxr-xr-x 4 root root 4.0K Sep 30 17:24 ..
drwxr-xr-x 6 root root 4.0K Sep 30 17:28 add-ons
drwxr-xr-x 32 root root 4.0K Sep 30 17:30 build-tools
drwxr-xr-x 3 root root 4.0K Sep 30 17:28 cmake
drwxr-xr-x 4 root root 4.0K Sep 30 17:27 extras
drwxr-xr-x 2 root root 4.0K Sep 30 17:24 licenses
drwxr-xr-x 13 root root 4.0K Sep 30 17:26 ndk-bundle
drwxr-xr-x 3 root root 4.0K Sep 30 17:28 patcher
drwxr-xr-x 5 root root 4.0K Sep 30 17:27 platform-tools
drwxr-xr-x 13 root root 4.0K Sep 30 17:30 platforms
* My workaround*
jobs:
build:
runs-on: ubuntu-18.04
env:
ANDROID_SDK_TOOLS: "4333796"
ANDROID_CMAKE: "3.10.2.4988404"
steps:
- uses: actions/checkout@v1
- name: set up JDK 1.8
uses: actions/setup-java@v1
with:
java-version: 1.8
- name: Install Android sdkmanager
run: |
wget --quiet --output-document=android-sdk.zip https://dl.google.com/android/repository/sdk-tools-linux-${ANDROID_SDK_TOOLS}.zip
sudo unzip -d $ANDROID_HOME android-sdk.zip > /dev/null
- name: Install required Android tools
run: |
echo "y" | sudo $ANDROID_HOME/tools/bin/sdkmanager "cmake;${ANDROID_CMAKE}" > /dev/null
echo "y" | sudo $ANDROID_HOME/tools/bin/sdkmanager --licenses > /dev/null
- name: Build with Gradle
run: |
export PATH="$ANDROID_HOME/cmake/${ANDROID_CMAKE}/bin:$PATH"
./gradlew build
This also affects android emulator setup
For now I've created a workaround custom action to install android sdk which has sdkmanager out of the box
@Malinskiy fyi your link is accidentally doubled in your message
This issue has not had any activity for 45 days and will be closed in 45 days if there continues to be no activity.
@leantk is this intended to get autoclosed?
Hello @ViliusSutkus89 , as I see at the script https://github.com/actions/virtual-environments/blob/master/images/linux/scripts/installers/1604/android.sh. android sdk manager is hosted on /usr/local/lib/android/tools/bin/sdkmanager, but $ANDROID_HOME points to /usr/local/lib/android/sdk.
So, correct path to sdk manager:
/usr/local/lib/android/tools/bin/sdkmanager
Hope it helps, thanks!
Hi @ViliusSutkus89 , I've closed this issue, please reopen it if you have any concerns or questions. Thanks!
@vsafonkin shouldn't ANDROID_HOME be fixed then? It's pointing to the wrong directory now, no?
@ZacSweers , no, ANDROID_HOME is correct, but sdkmanager is installed to unusial directory.
@ZacSweers , Yep, we definitely need to fix installation process to install sdkmanager to the correct directory. Reopened
PR with fix path for sdk manager installation: link
@vsafonkin
So, correct path to sdk manager:
/usr/local/lib/android/tools/bin/sdkmanager
and now that scripts points to:
/usr/local/lib/android/sdk/tools/bin/sdkmanager
however if I try to use that:
- name: Install ndk
run: /usr/local/lib/android/sdk/tools/bin/sdkmanager 'ndk;20.0.5594570'
I get:
Run /usr/local/lib/android/sdk/tools/bin/sdkmanager 'ndk;20.0.5594570'
/home/runner/work/_temp/1617399f-1d56-4e71-a078-883e95ca2b24.sh: line 1: /usr/local/lib/android/sdk/tools/bin/sdkmanager: Permission denied
##[error]Process completed with exit code 126.
I'm assuming the first line is this in sdkmanager:
#!/usr/bin/env sh
workaround is to:
- name: Install ndk
run: sh /usr/local/lib/android/sdk/tools/bin/sdkmanager 'ndk;20.0.5594570'
but then fails because repositories not there:
Warning: File /home/runner/.android/repositories.cfg could not be loaded.
Warning: Failed to read or create install properties file.
[=== ] 10% Installing NDK (Side by side) 20.0
##[error]Process completed with exit code 1.
Hello @rngadam !
Could you please try this step?
steps:
- name: Install dependencies
run: |
sudo ${ANDROID_HOME}/tools/bin/sdkmanager --install "ndk;20.0.5594570"
Just checked and it works for me.
@maxim-lobanov :
I ended doing:
- name: Install NDK
run: echo "y" | sudo /usr/local/lib/android/sdk/tools/bin/sdkmanager --install "ndk;20.0.5594570" --sdk_root=${ANDROID_SDK_ROOT}
and that works.
Most helpful comment
@maxim-lobanov :
I ended doing:
and that works.