我現在正在爲我的項目使用CircleCI。另外我在我的項目中實施了約束佈局的新。現在我堅持CircleCI大樓。它顯示了我這個當gradle這個-dependencies運行:CircleCI Android constraintLayout不起作用
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文件中的配置:
#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'
我不知道我已經做了不正確或者是有什麼我需要增加更多。請建議。 謝謝。
謝謝,我終於找到了通過將這些以依賴預先給牌照CI導出方式: - CP -r $ {HOME}/$ {} CIRCLE_PROJECT_REPONAME/Android的SDK許可$ ANDROID_HOME - CP -r $ {HOME}/$ {} CIRCLE_PROJECT_REPONAME/Android的SDK預覽許可證$ ANDROID_HOME 我也把Android的SDK許可和android-sdk-在我的回購預覽許可 – Jutikorn
這是一個偉大的提示!但是我會建議將'android-sdk-license'和'android-sdk-preview-license'的內容作爲兩個獨立的Circle CI環境變量來代替,因爲env vars是受保護的,這對於您的VCS回購。 – dbm
@Jutikorn我可以在哪裏下載呢?我只發現'android-sdk-license' – Spurdow