From eb0794a5d8af5b7b370b01c5ae4f7f5f0c14bc0d Mon Sep 17 00:00:00 2001 From: gnzlbg <gonzalobg88@gmail.com> Date: Thu, 16 May 2019 12:17:37 +0200 Subject: [PATCH] Update Android SDK, NDK (r19c), and API versions (arm:24,x86:28) * Update Android NDK to version r19c * Update Android API versions to: * API 24 on arm and aarch64 targets * API 28 on x86 and x86_64 targets * Unified headers were removed in NDK 16 * Refactor the NDK and SDK installation scripts * OpenJDK version 8 must be kept: it appears that the Android tools do not work with more modern OpenJDK versions. --- ci/android-install-ndk.sh | 31 ++++++++++----- ci/android-install-sdk.sh | 44 +++++++++++++--------- ci/docker/aarch64-linux-android/Dockerfile | 2 +- ci/docker/arm-linux-androideabi/Dockerfile | 2 +- ci/docker/i686-linux-android/Dockerfile | 2 +- 5 files changed, 52 insertions(+), 29 deletions(-) diff --git a/ci/android-install-ndk.sh b/ci/android-install-ndk.sh index 54f7b2ef..90c9747c 100644 --- a/ci/android-install-ndk.sh +++ b/ci/android-install-ndk.sh @@ -11,27 +11,40 @@ set -ex -curl --retry 10 -O https://dl.google.com/android/repository/android-ndk-r15b-linux-x86_64.zip -unzip -q android-ndk-r15b-linux-x86_64.zip +NDK=android-ndk-r19c +curl --retry 10 -O https://dl.google.com/android/repository/${NDK}-linux-x86_64.zip +unzip -q ${NDK}-linux-x86_64.zip case "$1" in + arm) + arch=arm + api=24 + ;; + armv7) + arch=arm + api=24 + ;; aarch64) arch=arm64 + api=24 ;; - i686) arch=x86 + api=28 + ;; + x86_64) + arch=x86_64 + api=28 ;; - *) - arch=$1 + echo "invalid arch: $1" + exit 1 ;; esac; -android-ndk-r15b/build/tools/make_standalone_toolchain.py \ - --unified-headers \ +${NDK}/build/tools/make_standalone_toolchain.py \ --install-dir "/android/ndk-${1}" \ --arch "${arch}" \ - --api 24 + --api ${api} -rm -rf ./android-ndk-r15b-linux-x86_64.zip ./android-ndk-r15b +rm -rf ./${NDK}-linux-x86_64.zip ./${NDK} diff --git a/ci/android-install-sdk.sh b/ci/android-install-sdk.sh index e011cfc3..fe28d434 100644 --- a/ci/android-install-sdk.sh +++ b/ci/android-install-sdk.sh @@ -18,46 +18,56 @@ set -ex # located in https://github.com/appunite/docker by just wrapping it in a script # which apparently magically accepts the licenses. +SDK=4333796 mkdir sdk -curl --retry 10 https://dl.google.com/android/repository/sdk-tools-linux-3859397.zip -O -unzip -d sdk sdk-tools-linux-3859397.zip +curl --retry 10 https://dl.google.com/android/repository/sdk-tools-linux-${SDK}.zip -O +unzip -q -d sdk sdk-tools-linux-${SDK}.zip case "$1" in arm | armv7) - abi=armeabi-v7a + api=24 + image="system-images;android-${api};google_apis;armeabi-v7a" ;; - aarch64) - abi=arm64-v8a + api=24 + image="system-images;android-${api};google_apis;arm64-v8a" ;; - i686) - abi=x86 + api=28 + image="system-images;android-${api};default;x86" ;; - x86_64) - abi=x86_64 + api=28 + image="system-images;android-${api};default;x86_64" ;; - *) echo "invalid arch: $1" exit 1 ;; esac; -# See: https://stackoverflow.com/a/51644855/1422197 -export JAVA_OPTS='-XX:+IgnoreUnrecognizedVMOptions --add-modules java.se.ee' +# Try to fix warning about missing file. +# See https://askubuntu.com/a/1078784 +mkdir -p /root/.android/ +echo '### User Sources for Android SDK Manager' >> /root/.android/repositories.cfg +echo '#Fri Nov 03 10:11:27 CET 2017 count=0' >> /root/.android/repositories.cfg + +# Print all available packages +# yes | ./sdk/tools/bin/sdkmanager --list --verbose # --no_https avoids - # javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: No trusted certificate found -yes | ./sdk/tools/bin/sdkmanager --licenses --no_https +# javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: No trusted certificate found +# +# | grep -v = || true removes the progress bar output from the sdkmanager +# which produces an insane amount of output. +yes | ./sdk/tools/bin/sdkmanager --licenses --no_https | grep -v = || true yes | ./sdk/tools/bin/sdkmanager --no_https \ "emulator" \ "platform-tools" \ - "platforms;android-24" \ - "system-images;android-24;default;$abi" + "platforms;android-${api}" \ + "${image}" | grep -v = || true echo "no" | ./sdk/tools/bin/avdmanager create avd \ --name "${1}" \ - --package "system-images;android-24;default;$abi" + --package "${image}" | grep -v = || true diff --git a/ci/docker/aarch64-linux-android/Dockerfile b/ci/docker/aarch64-linux-android/Dockerfile index 14584237..6751dd93 100644 --- a/ci/docker/aarch64-linux-android/Dockerfile +++ b/ci/docker/aarch64-linux-android/Dockerfile @@ -9,7 +9,7 @@ RUN dpkg --add-architecture i386 && \ python \ unzip \ expect \ - openjdk-11-jre \ + openjdk-8-jre \ libstdc++6:i386 \ libpulse0 \ gcc \ diff --git a/ci/docker/arm-linux-androideabi/Dockerfile b/ci/docker/arm-linux-androideabi/Dockerfile index acc784e7..544d1676 100644 --- a/ci/docker/arm-linux-androideabi/Dockerfile +++ b/ci/docker/arm-linux-androideabi/Dockerfile @@ -9,7 +9,7 @@ RUN dpkg --add-architecture i386 && \ python \ unzip \ expect \ - openjdk-11-jre \ + openjdk-8-jre \ libstdc++6:i386 \ libpulse0 \ gcc \ diff --git a/ci/docker/i686-linux-android/Dockerfile b/ci/docker/i686-linux-android/Dockerfile index 59ea2d79..54032205 100644 --- a/ci/docker/i686-linux-android/Dockerfile +++ b/ci/docker/i686-linux-android/Dockerfile @@ -9,7 +9,7 @@ RUN dpkg --add-architecture i386 && \ python \ unzip \ expect \ - openjdk-11-jre \ + openjdk-8-jre \ libstdc++6:i386 \ libpulse0 \ gcc \ -- GitLab