2016-12-02 23 views
4

我正在使用gitlab-ci構建我的android項目。經過大量搜索後,我發現如何接受sdk許可證。但是我在ConstraintLayout庫上收到了許可證不被接受的錯誤。這裏是我的.gitlab-ci.yml如何從命令行自動接受android庫許可證?

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/ 

我拷入我的許可文件到$ANDROID_HOME/licensescopy_licenses.sh

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

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

執行此之後,我收到此錯誤:

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 

如何接受ConstraintLayout 1.0.0-beta4命令行許可證?

+0

任何解決方案?我有同樣的問題 – Jagu

回答

-1

嘗試while true; do echo "y"; sleep 1;done,而不是echo y

+0

這不是接受android sdk許可證的問題。我在另一個不使用'ConstraintLayout'並且構建成功的項目上嘗試過相同的'.gitlab-ci.yml'。 – Prime

+0

您可能需要接受多個許可證,我懷疑'echo y'只是第一個。 – Rince

2

在我的情況下幫加before_script:部分:

- 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" 
相關問題