diff --git a/ci/android-install-sdk.sh b/ci/android-install-sdk.sh index 6f6aeb28e82b0..b6481559d3146 100644 --- a/ci/android-install-sdk.sh +++ b/ci/android-install-sdk.sh @@ -9,10 +9,11 @@ set -ex # located in https://github.com/appunite/docker by just wrapping it in a script # which apparently magically accepts the licenses. -SDK=6609375 -mkdir -p sdk/cmdline-tools +SDK=8512546 +mkdir -p sdk wget -q --tries=20 https://dl.google.com/android/repository/commandlinetools-linux-${SDK}_latest.zip -unzip -q -d sdk/cmdline-tools commandlinetools-linux-${SDK}_latest.zip +unzip -q commandlinetools-linux-${SDK}_latest.zip +mv cmdline-tools /usr/lib/android-sdk/ case "$1" in arm | armv7) @@ -39,9 +40,9 @@ esac; # 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 +mkdir -p /tmp/.android/avd +echo '### User Sources for Android SDK Manager' >> /tmp/.android/repositories.cfg +echo '#Fri Nov 03 10:11:27 CET 2017 count=0' >> /tmp/.android/repositories.cfg # Print all available packages # yes | ./sdk/tools/bin/sdkmanager --list --verbose @@ -51,14 +52,15 @@ echo '#Fri Nov 03 10:11:27 CET 2017 count=0' >> /root/.android/repositories.cfg # # | grep -v = || true removes the progress bar output from the sdkmanager # which produces an insane amount of output. -yes | ./sdk/cmdline-tools/tools/bin/sdkmanager --licenses --no_https | grep -v = || true -yes | ./sdk/cmdline-tools/tools/bin/sdkmanager --no_https \ +yes | /usr/lib/android-sdk/cmdline-tools/bin/sdkmanager --licenses --no_https --sdk_root=/usr/lib/android-sdk | grep -v = || true +yes | /usr/lib/android-sdk/cmdline-tools/bin/sdkmanager --no_https --sdk_root=/usr/lib/android-sdk \ "emulator" \ "platform-tools" \ "platforms;android-${api}" \ "${image}" | grep -v = || true echo "no" | - ./sdk/cmdline-tools/tools/bin/avdmanager create avd \ + /usr/lib/android-sdk/cmdline-tools/bin/avdmanager -v create avd \ --name "${1}" \ - --package "${image}" | grep -v = || true + --package "${image}" + -p /usr/lib/android-sdk/ | grep -v = || true diff --git a/ci/docker/i686-linux-android/Dockerfile b/ci/docker/i686-linux-android/Dockerfile index ed1b2e9fbef0e..e4726816eb99f 100644 --- a/ci/docker/i686-linux-android/Dockerfile +++ b/ci/docker/i686-linux-android/Dockerfile @@ -11,21 +11,26 @@ RUN apt-get install -y --no-install-recommends \ python3-distutils \ unzip \ expect \ - openjdk-8-jre \ + openjdk-11-jre \ libstdc++6:i386 \ - libpulse0 + libpulse0 \ + android-sdk WORKDIR /android/ COPY android* /android/ -ENV ANDROID_ARCH=i686 -ENV PATH=$PATH:/android/ndk-$ANDROID_ARCH/bin:/android/sdk/cmdline-tools/tools:/android/sdk/platform-tools +ENV ANDROID_ARCH=i686 \ + ANDROID_HOME=/usr/lib/android-sdk \ + ANDROID_SDK_ROOT=/usr/lib/android-sdk +ENV PATH=$PATH:/android/ndk-$ANDROID_ARCH/bin:/usr/lib/android-sdk/cmdline-tools:/usr/lib/android-sdk/platform-tools RUN sh /android/android-install-ndk.sh $ANDROID_ARCH RUN sh /android/android-install-sdk.sh $ANDROID_ARCH -RUN mv /root/.android /tmp +RUN cp -r /root/.android /tmp +RUN chmod 777 -R /root/.android RUN chmod 777 -R /tmp/.android -RUN chmod 755 /android/sdk/cmdline-tools/tools/* /android/sdk/emulator/qemu/linux-x86_64/* +RUN chmod 777 -R /usr/lib/android-sdk +RUN chmod 755 /usr/lib/android-sdk/cmdline-tools/tools/* /usr/lib/android-sdk/emulator/qemu/linux-x86_64/* ENV PATH=$PATH:/rust/bin \ CARGO_TARGET_I686_LINUX_ANDROID_LINKER=i686-linux-android-gcc \ @@ -39,7 +44,7 @@ ENTRYPOINT [ \ "-c", \ # set SHELL so android can detect a 64bits system, see # http://stackoverflow.com/a/41789144 - "SHELL=/bin/dash /android/sdk/emulator/emulator @i686 -no-window -no-accel & \ + "SHELL=/bin/dash /usr/lib/android-sdk/emulator/emulator @i686 -no-window -no-accel & \ rustc /tmp/runtest.rs -o /tmp/runtest && \ exec \"$@\"", \ "--" \