2016-12-08 5 views
1

Я имею следующий построить провал на circleci для моего андроида проекта:ConstraintLayout проблема с circleci на Android

  • Что пошло не так: Возникла проблема настройки проекта «: приложение». Вы не приняли лицензионные соглашения следующих компонентов SDK: [Solver for ConstraintLayout 1.0.0-beta4, ConstraintLayout для Android 1.0.0-beta4]. Перед созданием проекта вам необходимо принять лицензионные соглашения и завершить установку отсутствующих компонентов с помощью Android Studio SDK Manager. В качестве альтернативы, чтобы узнать, как передать лицензионные соглашения с одной рабочей станции на другую, перейдите к http://d.android.com/r/studio-ui/export-licenses.html

Я использую следующий circle.yml для сборки:

test: 
override: 
    - (./gradlew assemble): 
     timeout: 360 

dependencies: 
    pre: 
    # Android SDK Platform 24 
    - if [ ! -d "/usr/local/android-sdk-linux/platforms/android-25" ]; then echo y | android update sdk --no-ui --all --filter "android-25"; fi 
    # Android SDK Build-tools, revision 25.0.1 
    - if [ ! -d "/usr/local/android-sdk-linux/build-tools/25.0.1" ]; then echo y | android update sdk --no-ui --all --filter "build-tools-25.0.1"; fi 
    # Android Support Repository, revision 40/Local Maven repository for Support Libraries 
    - if [ ! -d "/usr/local/android-sdk-linux/extras/android/m2repository/com/android/support/support-v4/25.0.1" ]; then echo y | android update sdk --no-ui --all --filter "extra-android-m2repository"; fi 
    # Google Support Repository, revision 40/Local Maven repository for Support Libraries 
    - if [ ! -d "/usr/local/android-sdk-linux/extras/google/m2repository/com/google/firebase/firebase-core/10.0.1" ]; then echo y | android update sdk --no-ui --all --filter "extra-google-m2repository"; fi 
    - mkdir $ANDROID_HOME/licenses; ls -l $ANDROID_HOME/licenses 
    - cp --force licenses/* $ANDROID_HOME/licenses; ls -l $ANDROID_HOME/licenses 


cache_directories: 
    - /usr/local/android-sdk-linux/platforms/android-25 
    - /usr/local/android-sdk-linux/build-tools/25.0.1 
    - /usr/local/android-sdk-linux/extras/android/m2repository 
    - /usr/local/android-sdk-linux/extras/google/m2repository 

override: 
# Adding true flag because of this issue with ConstraintLayout https://code.google.com/p/android/issues/detail?id=212128 
    - ANDROID_HOME=/usr/local/android-sdk-linux ./gradlew dependencies || true 
machine: 
    java: 
     version: oraclejdk8 
    environment: 
     ANDROID_HOME: /usr/local/android-sdk-linux 

Что может стать причина этой проблемы?

ответ

3

Похоже, что android устарел или заменен на sdkmanager в качестве менеджера пакетов. Например, в моем случае sdkmanager имеет доступ к спискам ConstraintLayout и ConstraintLayout Solver, но android нет.

Для получения дополнительной информации о sdkmanager, посетите the official docs

В моем случае, я также должен был обновить SDk инструменты, используя android для того, чтобы иметь sdkmanager установлен. Однако место установки не находится в папке tools, но tools/bin, поэтому мне также пришлось напрямую обращаться к sdkmanager, так как он не был включен в $PATH на моей машине CI.

Применяя все это к вашему делу:

# Android SDK Platform 24 
    - if [ ! -d "/usr/local/android-sdk-linux/platforms/android-25" ]; then echo y | android update sdk --no-ui --all --filter "android-25"; fi 
    # Android SDK Build-tools, revision 25.0.1 
    - if [ ! -d "/usr/local/android-sdk-linux/build-tools/25.0.1" ]; then echo y | android update sdk --no-ui --all --filter "build-tools-25.0.1"; fi 
    # Android Support Repository, revision 40/Local Maven repository for Support Libraries 
    - if [ ! -d "/usr/local/android-sdk-linux/extras/android/m2repository/com/android/support/support-v4/25.0.1" ]; then echo y | android update sdk --no-ui --all --filter "extra-android-m2repository"; fi 
    # Google Support Repository, revision 40/Local Maven repository for Support Libraries 
    - if [ ! -d "/usr/local/android-sdk-linux/extras/google/m2repository/com/google/firebase/firebase-core/10.0.1" ]; then echo y | android update sdk --no-ui --all --filter "extra-google-m2repository"; fi 

    # Android Tools latest (has sdkmanager) 
    - if [ ! -d "/usr/local/android-sdk-linux/tools/bin/sdkmanager" ]; then echo y | android update sdk --no-ui --all --filter "tools"; fi 
    # ConstraintLayout 
    - if [ ! -d "/usr/local/android-sdk-linux/extras/m2repository/com/android/support/constraint/constraint-layout/1.0.0-beta4" ]; then echo y | /usr/local/android-sdk-linux/tools/bin/sdkmanager "extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta4"; fi 
    # ConstraintLayout Solver 
    - if [ ! -d "/usr/local/android-sdk-linux/extras/m2repository/com/android/support/constraint/constraint-layout-solver/1.0.0-beta4" ]; then echo y | /usr/local/android-sdk-linux/tools/bin/sdkmanager "extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta4"; fi 

 Смежные вопросы

  • Нет связанных вопросов^_^