CircleCI Android constraintLayout no funciona
Ahora estoy usando el CircleCI para mi proyecto. También estoy implementando la nueva constraintLayout en mi proyecto. Ahora estoy atascado con el edificio CircleCI. Me muestra esto cuando 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
Esta es mi configuración en el archivo .yml:
- Prueba de prueba de Espresso en CircleCI
- Circle CI Automated para Android Project no pudo construir el archivo APK y no se instaló en el dispositivo
- Android Circle Gradle Advertencia: Las máquinas virtuales de generación tienen un límite de memoria de 4G
- Advertencia de creación de Instabug para Android
- No se encontró com.android.tools.build:gradle:3.0.0-alpha1 en el círculo ci
#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
Comprobé el registro de la compilación cuando
echo y | android update sdk --no-ui --all --filter "extra-android-m2repository"
Comando ejecutar y aquí es el resultado:
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.
Y mi classpath es:
classpath 'com.android.tools.build:gradle:2.2.0-alpha4'
No estoy seguro de lo que he hecho incorrectamente o hay algo que necesito para agregar más. Por favor recomiende. Gracias.
- ¿Puede Circle CI referenciar gradle.properties credenciales?
- Gradle assembleDebug y preDexDebug fallan con CircleCI
- ¿Cómo limitar el número de trabajadores en reaccionar embalador nativo (androide) (gradle)?
- Cómo instalar el SDK de GMS de Google Play Services en CircleCI
- CircleCi no puede fallar al resolver herramientas de compilación Android
- Error de Gradle: No se encontró com.android.tools.build:gradle:2.2.3
- Android y Jill quedan atrapados
- CircleCI Android No soportado major.minor versión 52.0
TL, DR
Necesita copiar las licencias de $ANDROID_HOME/licenses
en su entorno CircleCI.
Puedes cerrar tus licencias y guardarlas en Dropbox (o algo similar) y modificar tu archivo circle.yml
para descargar las licencias y extraerlas a $ANDROID_HOME
.
El último párrafo del error casi lo explica
Antes de crear su proyecto, debe aceptar los acuerdos de licencia y completar la instalación de los componentes que faltan mediante el Administrador de SDK de Android Studio. Como alternativa, para aprender a transferir los acuerdos de licencia de una estación de trabajo a otra, vaya a http://d.android.com/r/studio-ui/export-licenses.html
Tengo el mismo problema con ConstraintLayout
, éste es mi círculo de trabajo config.yml
La respuesta de Alex Fu explica muy bien dónde está el problema y cómo tratarlo, pero hay una solución más sencilla. Dado que los archivos de licencia son realmente sólo archivos simples con un montón de caracteres hexadecimales en ellos se pueden crear simplemente sin copiar. Un ejemplo sería poner el siguiente código en la sección pre:
:
- ANDROID_HOME=/usr/local/android-sdk-linux - mkdir "$ANDROID_HOME/licenses" || true - echo "8933bad161af4178b1185d1a37fbf41ea5269c55" > "$ANDROID_HOME/licenses/android-sdk-license" - echo "84831b9409646a918e30573bab4c9c91346d8abd" > "$ANDROID_HOME/licenses/android-sdk-preview-license" - echo "d975f751698a77b662f1254ddbeed3901e976f5a" > "$ANDROID_HOME/licenses/intel-android-extra-license"
Esto funcionó para mí, y también comprueba primero las versiones en caché:
Dependencias: pre: # Android SDK Platform 24 - Si [ ! -d "/ usr / local / android-sdk-linux / plataformas / android-24"]; Entonces echo y | Android actualización sdk --no-ui --all --filter "android-24"; Fi # Android SDK Build-tools, revisión 24.0.1 - Si [ ! -d "/usr/local/android-sdk-linux/build-tools/24.0.1"]; Entonces echo y | Android actualización sdk --no-ui --all --filter "build-tools-24.0.1"; Fi # Repositorio de soporte de Android, revisión 35 / Depósito local de Maven para bibliotecas de soporte - Si [ ! -d "/usr/local/android-sdk-linux/extras/android/m2repository/com/android/support/design/24.1.0"]; Entonces echo y | Android actualización sdk --no-ui --all --filter "extra-android-m2repository"; Fi Cache_directories: - / usr / local / android-sdk-linux / plataformas / android-24 - /usr/local/android-sdk-linux/build-tools/24.0.1 - / usr / local / android-sdk-linux / extras / android / m2repository
Tomado de este poste por el empleado de CircleCI drazisil