CircleCI Android约束布局不起作用 [英] CircleCI Android constraintLayout doesn't work

查看:195
本文介绍了CircleCI Android约束布局不起作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我现在在项目中使用 CircleCI .另外,我正在项目中实现新的 constraintLayout .现在,我被CircleCI大楼困住了.它显示了 gradle -dependencies 运行时的情况:

I am now using the CircleCI for my project. Also I am implementing the new constraintLayout in my project. Now I am stuck with the CircleCI building. It shows me this when gradle -dependencies run:

File /home/ubuntu/.android/repositories.cfg could not be loaded.
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:
  [com.android.support.constraint:constraint-layout:1.0.0-alpha3, com.android.support.constraint:constraint-layout-solver:1.0.0-alpha3].
  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

这是我在.yml文件中的配置:

Here is my configuration in .yml file:

#Install android build tools, platforms
#Supported versions here https://circleci.com/docs/android
machine:
    java:
        version: openjdk8
    environment:
        ANDROID_HOME: /usr/local/android-sdk-linux

dependencies:
    pre:
        - echo y | android list sdk
        - echo y | android update sdk --no-ui --all --filter "tools"
        - echo y | android update sdk --no-ui --all --filter "platform-tools"
        - echo y | android update sdk --no-ui --all --filter "build-tools-24.0.0"
        - echo y | android update sdk --no-ui --all --filter "android-24"
        - echo y | android update sdk --no-ui --all --filter "extra-google-m2repository"
        - echo y | android update sdk --no-ui --all --filter "extra-google-google_play_services"
        - echo y | android update sdk --no-ui --all --filter "extra-android-support"
        - echo y | android update sdk --no-ui --all --filter "extra-android-m2repository"
        - (./gradlew -version):
                    timeout: 360
    override:
        #- ANDROID_HOME=/usr/local/android-sdk-linux ./gradlew dependencies
        - export TERM="dumb"; if [ -e ./gradlew ]; then ./gradlew clean dependencies -stacktrace;else gradle clean dependencies -stacktrace;fi

#Pull any submodules
checkout:
  post:
    - git submodule init
    - git submodule update

#-PdisablePreDex is a must else gradle just dies due to memory limit
#Replace
test:
    override:
        - (./gradlew assemble -PdisablePreDex):
            timeout: 360
        - cp -r ${HOME}/${CIRCLE_PROJECT_REPONAME}/app/build/outputs/apk/ $CIRCLE_ARTIFACTS
        - emulator -avd circleci-android22 -no-audio -no-window:
            background: true
            parallel: true
        # wait for it to have booted
        - circle-android wait-for-boot
        # run tests  against the emulator.
        - ./gradlew connectedAndroidTest

#Deploy when tests pass
deployment:
    #production:
    #    branch: master
    #    commands:
    #        - (./gradlew clean assembleRelease crashlyticsUploadDistributionRelease -PdisablePreFex):
    #            timeout: 720

    staging:
        branch: staging
        commands:
             - (./gradlew clean assembleStaging crashlyticsUploadDistributionStaging -PdisablePreFex):
                timeout: 720

我在

echo y | android update sdk --no-ui --all --filter "extra-android-m2repository"

命令运行,结果如下:

November 20, 2015
Do you accept the license 'android-sdk-license-c81a61d9' [y/n]: 
Installing Archives:
  Preparing to install archives
  Downloading Android Support Repository, revision 33
  Installing Android Support Repository, revision 33
    Installed Android Support Repository, revision 33
  Done. 1 package installed.

我的类路径是:

classpath 'com.android.tools.build:gradle:2.2.0-alpha4'

我不确定我做错了什么,还是我需要添加更多内容.请提出建议. 谢谢.

I am not sure what I've done incorrectly or is there anything I need to add more. Please suggest. Thanks.

推荐答案

TL; DR

您需要将许可证从$ANDROID_HOME/licenses复制到CircleCI环境中.

You need to copy the licenses from $ANDROID_HOME/licenses into your CircleCI environment.

您可以压缩许可证并将其存储在Dropbox(或类似的文件)上,并修改您的circle.yml文件以下载许可证并将其解压缩到$ANDROID_HOME.

You can zip up your licenses and store it on Dropbox (or something similar) and modify your circle.yml file to download the licenses and extract it to $ANDROID_HOME.

错误的最后一段几乎可以解释

The last paragraph of the error pretty much explains it

在构建项目之前,您需要接受许可协议并使用Android Studio SDK Manager完成缺少组件的安装.或者,要了解如何将许可协议从一个工作站转移到另一个工作站,请访问 http://d.android.com/r/studio-ui/export-licenses.html

这篇关于CircleCI Android约束布局不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆