diff --git a/ci/android-install-ndk.sh b/ci/android-install-ndk.sh
index 54f7b2efd967419df656473f7e1a7095690845e5..90c9747c3363ba68d53f0e666555591a41a78fab 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 e011cfc34bb4c7764469acae8fb01e5b9e0a779e..fe28d43417b1183dfb156d02b2eb654d6c92145b 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 1458423756759107c658809c230bfcfb71c18fd8..6751dd93762d0bf96fd79ffcf4e383624c1d47e2 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 acc784e7d595f336ce1f4642aa0908bc386b98ca..544d1676e1b08d4495013dfa5fdb9d20a6706199 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 59ea2d79fc31b7c730c4602481e65d1c31fb77d0..540322055e449b7463ccd472c131608aa91216d1 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 \