Страницы

Поиск по вопросам

вторник, 11 июня 2019 г.

Gitlab / You have not accepted the license agreements of the following SDK component

При сборке проекта по автоматическому файлу .gitlab-ci.yml для android.
You have not accepted the license agreements of the following SDK components: [ConstraintLayout for Android 1.0.2, Solver for ConstraintLayout 1.0.2]. Before building your project, you need to accept the license agreements and complete the installation of the missing components using the Android Studio SDK Manager. .gitlab-ci.yml
# This file is a template, and might need editing before it works on your project. # Read more about this script on this blog post https://about.gitlab.com/2016/11/30/setting-up-gitlab-ci-for-android-projects/, by Greyson Parrelli image: openjdk:8-jdk
variables: ANDROID_COMPILE_SDK: "26" ANDROID_BUILD_TOOLS: "26.0.1" ANDROID_SDK_TOOLS: "24.4.1"
before_script: - apt-get --quiet update --yes - apt-get --quiet install --yes wget tar unzip lib32stdc++6 lib32z1 - wget --quiet --output-document=android-sdk.tgz https://dl.google.com/android/android-sdk_r${ANDROID_SDK_TOOLS}-linux.tgz - tar --extract --gzip --file=android-sdk.tgz - echo y | android-sdk-linux/tools/android --silent update sdk --no-ui --all --filter android-${ANDROID_COMPILE_SDK} - echo y | android-sdk-linux/tools/android --silent update sdk --no-ui --all --filter platform-tools - echo y | android-sdk-linux/tools/android --silent update sdk --no-ui --all --filter build-tools-${ANDROID_BUILD_TOOLS} - echo y | android-sdk-linux/tools/android --silent update sdk --no-ui --all --filter extra-android-m2repository - echo y | android-sdk-linux/tools/android --silent update sdk --no-ui --all --filter extra-google-google_play_services - echo y | android-sdk-linux/tools/android --silent update sdk --no-ui --all --filter extra-google-m2repository - export ANDROID_HOME=$PWD/android-sdk-linux - export PATH=$PATH:$PWD/android-sdk-linux/platform-tools/ - chmod +x ./gradlew
stages: - build - test
build: stage: build script: - ./gradlew assembleDebug artifacts: paths: - app/build/outputs/
unitTests: stage: test script: - ./gradlew test
functionalTests: stage: test script: - wget --quiet --output-document=android-wait-for-emulator https://raw.githubusercontent.com/travis-ci/travis-cookbooks/0f497eb71291b52a703143c5cd63a217c8766dc9/community-cookbooks/android-sdk/files/default/android-wait-for-emulator - chmod +x android-wait-for-emulator - echo y | android-sdk-linux/tools/android --silent update sdk --no-ui --all --filter sys-img-x86-google_apis-${ANDROID_COMPILE_SDK} - echo no | android-sdk-linux/tools/android create avd -n test -t android-${ANDROID_COMPILE_SDK} --abi google_apis/x86 - android-sdk-linux/tools/emulator64-x86 -avd test -no-window -no-audio & - ./android-wait-for-emulator - adb shell input keyevent 82 - ./gradlew cAT


Ответ

На данный момент Google рекомендует такой способ:
запускаете на обычной машине с установленным Android SDK в папке проекта ./gradlew build содержимое $ANDROID_HOME/lisenses помещаете в соответствующую папку на билд-машине (у меня там android-sdk-license и android-sdk-preview-license)
В вашем случае можно положить эти файлы в репозиторий (например, в папку sdk-licenses) и добавить mkdir -p $ANDROID_HOME/licenses/ && cp sdk-licenses/* $ANDROID_HOME/licenses/ в before_script
UPDATE: в репозитории не должно быть файла local.properties, потому что параметр sdk.dir в нем имеет приоритет над $ANDROID_HOME для Gradle.

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

Отправить комментарий