Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to accept android library licenses automatically from command line?

I am using gitlab-ci to build my android project. After lots of searching I found how to accept sdk licences. But I am getting licence not accepted error on ConstraintLayout library. Here is my .gitlab-ci.yml:

    image: openjdk:8-jdk

    variables:
    ANDROID_TARGET_SDK: "25"
    ANDROID_BUILD_TOOLS: "25.0.0"
    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_TARGET_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
    - chmod +x ./gradlew
    - chmod +x ./copy_licenses.sh
  build:
    script:
      - ./copy_licenses.sh
      - ./gradlew assembleDebug
    artifacts:
      paths:
      - app/build/outputs/

I copyed my licence files to the $ANDROID_HOME/licenses with copy_licenses.sh :

    #!/bin/bash
    # fail if any commands fails
    set -e
    # debug log
    set -x

    cp -a "./android-licenses" "$ANDROID_HOME/licenses"

after executing this, I am getting this error:

    FAILURE: Build failed with an exception.

    * What went wrong:
    A problem occurred configuring project ':app'.
    > You have not accepted the license agreements of the following SDK components:
      [Solver for ConstraintLayout 1.0.0-beta4, ConstraintLayout for Android 1.0.0-beta4].
      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.
      Alternatively, to learn how to transfer the license agreements from one workstation to another, go to http://d.android.com/r/studio-ui/export-licenses.html

    * Try:
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

    BUILD FAILED

How to accept ConstraintLayout 1.0.0-beta4 licence from command line?

like image 1000
Prime Avatar asked Dec 02 '16 11:12

Prime


1 Answers

in my case helped adding before_script: part:

    - mkdir -p "${ANDROID_HOME}/licenses"
    - echo -e "\n8933bad161af4178b1185d1a37fbf41ea5269c55" > "${ANDROID_HOME}/licenses/android-sdk-license"
    - echo -e "\n84831b9409646a918e30573bab4c9c91346d8abd" > "${ANDROID_HOME}/licenses/android-sdk-preview-license"
    - echo -e "\nd975f751698a77b662f1254ddbeed3901e976f5a" > "${ANDROID_HOME}/licenses/intel-android-extra-license"
like image 84
borichellow Avatar answered Nov 18 '22 00:11

borichellow