Исключение во время выполнения, созданное в сборке выпуска после включения очистки

# #android #docker #gitlab-ci #release

Вопрос:

Использование docker gitlab в качестве CICD для процесса выпуска приложения для Android

недавно мы интегрировали модуль Android, который поддерживает новейшие JAVA API, такие как stream ()

Как указано здесь https://developer.android.com/studio/write/java8-support я включил функцию удаления сахара в своем приложении

Среда в локальной JAVA_VERSION 11 GRADLE_VERSION 6.5

Если я создаю сборку выпуска локально, она хорошо работает с упомянутыми средами.

Но я выполняю процесс CI-CD, исключение во время выполнения выдается, когда приложение использует stream api

Похоже, что изображение docker не поддерживает настройки удаления

публикация файла docker здесь

 
FROM openjdk:11

ENV ANDROID_HOME /opt/android-sdk-linux

ENV SDK_HOME /opt

# Download Android SDK into $ANDROID_HOME
# You can find URL to the current version at: https://developer.android.com/studio/index.html

RUN mkdir -p ${ANDROID_HOME}/cmdline-tools amp;amp; 
    wget -q https://dl.google.com/android/repository/commandlinetools-linux-7302050_latest.zip -O android_tools.zip amp;amp; 
    unzip android_tools.zip -d ${ANDROID_HOME}/cmdline-tools amp;amp; 
    mv ${ANDROID_HOME}/cmdline-tools/cmdline-tools ${ANDROID_HOME}/cmdline-tools/tools amp;amp; 
    rm android_tools.zip

ENV PATH ${PATH}:${ANDROID_HOME}/cmdline-tools/latest/bin:${ANDROID_HOME}/cmdline-tools/tools/bin:${ANDROID_HOME}/platform-tools


# Download Gradle into $GRADLE_HOME
ENV GRADLE_VERSION 6.5
ENV GRADLE_SDK_URL https://services.gradle.org/distributions/gradle-${GRADLE_VERSION}-bin.zip
RUN curl -sSL "${GRADLE_SDK_URL}" -o gradle-${GRADLE_VERSION}-bin.zip  
    amp;amp; unzip gradle-${GRADLE_VERSION}-bin.zip -d ${SDK_HOME}  
    amp;amp; rm -rf gradle-${GRADLE_VERSION}-bin.zip
ENV GRADLE_HOME ${SDK_HOME}/gradle-${GRADLE_VERSION}
ENV PATH ${GRADLE_HOME}/bin:$PATH


# Accept Android SDK licenses

RUN yes | sdkmanager --licenses

RUN touch /root/.android/repositories.cfg

# Platform tools
RUN sdkmanager "emulator" "tools" "platform-tools"

# SDKs
# Please keep these in descending order!
# The `yes` is for accepting all non-standard tool licenses.

RUN yes | sdkmanager --update --channel=3
# Please keep all sections in descending order!
RUN yes | sdkmanager 
    "platforms;android-30" 
    "platforms;android-29" 
    "build-tools;30.0.2" 
    "build-tools;29.0.2" 
    "extras;android;m2repository" 
    "extras;google;m2repository" 
    "extras;google;google_play_services" 
    "extras;m2repository;com;android;support;constraint;constraint-layout;1.0.2" 
    "extras;m2repository;com;android;support;constraint;constraint-layout;1.0.1" 
    "add-ons;addon-google_apis-google-23" 
    "add-ons;addon-google_apis-google-22"

# Download and install Google Cloud SDK
RUN wget -nv  https://dl.google.com/dl/cloudsdk/release/google-cloud-sdk.tar.gz 
RUN tar -zxvf google-cloud-sdk.tar.gz amp;amp; ./google-cloud-sdk/install.sh --usage-reporting=false --path-update=true 
# Adding the package path to local
ENV GCLOUD_HOME "/google-cloud-sdk"
ENV PATH "$PATH:${GCLOUD_HOME}/bin"
RUN echo y | gcloud --quiet components update
RUN echo y | gcloud components install beta



 

в чем может быть причина, поскольку

Исключения во время выполнения

 11-10 11:44:43.419 E/AndroidRuntime(14146): java.lang.NoClassDefFoundError: Failed resolution of: Lj$/util/Collection$-EL;

 

Комментарии:

1. отредактирован вопрос @sytech.