you tools the precio not manager license licencia have for following agreements accepted android gradle sdk android-gradle android-sdk-tools

android - tools - Acepta automáticamente todas las licencias de SDK



you have not accepted the license agreements of the following sdk components (30)

Desde gradle android plugins 2.2-alpha4 :

Gradle intentará descargar los paquetes de SDK faltantes de los que depende un proyecto

Lo cual es increíblemente genial y se sabía que era un proyecto de JakeWharton .

Pero, para descargar la biblioteca del SDK, debe: aceptar los acuerdos de licencia o Gradle le dice:

No ha aceptado los acuerdos de licencia de los siguientes componentes del SDK: [Android SDK Build-Tools 24, Android SDK Platform 24]. Antes de crear su proyecto, debe aceptar los acuerdos de licencia y completar la instalación de los componentes que faltan con el Administrador de Android Studio SDK. Alternativamente, para aprender cómo 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

Y esto es un problema porque me encantaría instalar todas las dependencias de gradle build mientras hago una gradle build .

Estoy buscando una solución para aceptar automáticamente todas las licencias. Tal vez un guión gradle? Tienes alguna idea ?

¡Gracias!

[EDITAR]

Una solución fue ejecutar:

android update sdk --no-ui --filter build-tools-24.0.0,android-24,extra-android-m2repository

E instálelo manualmente, pero es el nuevo propósito de la función de Gradle hacerlo.

[EDITAR 2]

Una mejor solución es usar el sdkmananger:

yes | sdkmanager --licenses


A partir de julio de 2019 , el método más fácil es usar: flutter doctor --android-licenses en el símbolo del sistema.

Continúa mostrando los T&C no aceptados de los SDK uno por uno y tiene la opción de elegir ''y / n''. Elige y para todos.

Alternativamente, cuando ejecuta flutter doctor , ejecutará el diagnóstico de la cadena de herramientas de Android que muestra cuántas licencias aún no se aceptan, y le sugiere que lo ejecute con el indicador --android-licenss.


AndroidSDK finalmente puede aceptar licencias.

yes | sdkmanager --licenses

EDITAR:

Como se señaló en los comentarios de @MoOx, en macOS, puede hacer

yes | sudo ~/Library/Android/sdk/tools/bin/sdkmanager --licenses

como se señaló en los comentarios de @pho, @mikebridge y @ Noitidart en Windows, puede hacer

cmd.exe ""/K"%LocalAppData%/Android/sdk/tools/bin/sdkmanager.bat --licenses"

asegúrese de instalar java antes


Aquí está mi configuración de Docker.
Puede seguir desde un entorno Linux simple.

Tenga en cuenta que yes | y --licenses --sdk_root=${ANDROID_HOME} cláusulas.
Parece sdkmanager --update acuerdos, entonces yes | aparece dos veces

FROM openjdk:8 # Install dev-essential(gnumake) RUN apt update RUN apt install -y build-essential # Set ENV ENV SDK_URL="https://dl.google.com/android/repository/sdk-tools-linux-4333796.zip" / ANDROID_HOME="/usr/local/android-sdk" / ANDROID_VERSION=28 / ANDROID_BUILD_TOOLS_VERSION=28.0.3 / GRADLE_VERSION=4.10.3 / NDK_VERSION=r16b # Download Android SDK RUN mkdir "$ANDROID_HOME" .android / && cd "$ANDROID_HOME" / && curl -o sdk.zip $SDK_URL / && unzip sdk.zip / && rm sdk.zip / && yes | $ANDROID_HOME/tools/bin/sdkmanager --licenses --sdk_root=${ANDROID_HOME} # Install Android Build Tool and Libraries RUN $ANDROID_HOME/tools/bin/sdkmanager --update RUN yes | $ANDROID_HOME/tools/bin/sdkmanager "build-tools;${ANDROID_BUILD_TOOLS_VERSION}" / "platforms;android-${ANDROID_VERSION}" / "platform-tools" --sdk_root=${ANDROID_HOME} # Install Gradle RUN wget https://services.gradle.org/distributions/gradle-${GRADLE_VERSION}-all.zip RUN mkdir /opt/gradle RUN unzip gradle-${GRADLE_VERSION}-all.zip -d /opt/gradle ENV PATH=${PATH}:/opt/gradle/gradle-${GRADLE_VERSION}/bin # Install NDK RUN wget https://dl.google.com/android/repository/android-ndk-${NDK_VERSION}-linux-x86_64.zip RUN mkdir /opt/ndk-bundle RUN unzip android-ndk-${NDK_VERSION}-linux-x86_64.zip -d /opt/ndk-bundle ENV PATH=${PATH}:/opt/ndk-bundle RUN mkdir /application WORKDIR /application



Corro

#react-native run-android

desde la terminal y se encontró con ese problema. Para manualmente, vaya a Android Studio -> Android SDK -> SDK Platform Haga clic en Mostrar detalles de paquetes y verifique:

+ Google APIs + Android SDK Platform 23 + Intel x86 Atom_64 System Image + Google APIs Intel x86 Atom_64 System Image

Cuando instale paquetes, marque aceptar licencia => puede resolver el problema.


Desafortunadamente, la forma en que OP resolvió originalmente no siempre funciona. Si encuentra en el mensaje de error cuál es su versión actual de herramientas de compilación de compilaciones . Podría ser que falta una versión superior de herramientas de compilación. En ese caso, debe iniciar manualmente SDK Manager y agregar las herramientas de compilación y aceptar la licencia.

Según las instrucciones de OP, se ve de la siguiente manera.

$ ./gradlew build

To honour the JVM settings for this build a new JVM will be forked. Please consider using the daemon: https://docs.gradle.org/2.14.1/userguide/gradle_daemon.html. 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: [Android SDK Build-Tools 24.0.2]. ... BUILD FAILED

NOTA: 2017-04-16

La herramienta de android ahora ha quedado en desuso en favor del nuevo sdkmanager . Consulte la answer Joe Lawson y las publicaciones posteriores de marzo (2017) en adelante.

Luego ajuste su comando de la siguiente manera:

android update sdk --no-ui --filter build-tools-24.0.2,android-24,extra-android-m2repository

Refresh Sources: Fetching https://dl.google.com/android/repository/addons_list-2.xml Validate XML Parse XML Fetched Add-ons List successfully Refresh Sources Fetching URL: https://dl.google.com/android/repository/repository-11.xml Validate XML: https://dl.google.com/android/repository/repository-11.xml Parse XML: https://dl.google.com/android/repository/repository-11.xml ... Error: Ignoring unknown package filter ''build-tools-24.0.2'' ------------------------------- License id: android-sdk-license-xxxxxxxx Used by: - SDK Platform Android 7.0, API 24, revision 2 - Android Support Repository, revision 39 ------------------------------- ... November 20, 2015 Do you accept the license ''android-sdk-license-xxxxxxxx'' [y/n]: y Installing Archives: Preparing to install archives Downloading SDK Platform Android 7.0, API 24, revision 2 Installing SDK Platform Android 7.0, API 24, revision 2 Installed SDK Platform Android 7.0, API 24, revision 296%) Downloading Android Support Repository, revision 39 Installing Android Support Repository, revision 39 Installed Android Support Repository, revision 3999%) Done. 2 packages installed.

Ejecutando esto de nuevo, aún no hace feliz a Gradle. Por lo tanto, la aceptación manual es la única solución hasta que alguien presente algo mejor. (¡Por favor, hazlo!)


En Mac OSX, navegue hasta sdk/tools/bin

Luego ejecute ./sdkmanager --licenses y acepte todas las licencias.


En Windows PowerShell, puedes hacer

for($i=0;$i -lt 30;$i++) { $response += "y`n"}; $response | sdkmanager --licenses

Esto es mucho más flexible y no requiere intervención manual. El número 30 es arbitrario, debería ser suficiente para cubrir el número de aceptaciones de licencias, pero se puede aumentar si es necesario


Encontramos el mismo problema al construir el proyecto en Jenkins. Con buildToolsVersion ''25.0.2'' , debemos aceptar licencias antes de construir. En nuestro caso, necesitábamos ejecutar:

yes | sdkmanager --update yes | sdkmanager --update que acepta licencias para el propio sdkmanager, y luego

yes | sdkmanager --licenses yes | sdkmanager --licenses que aceptan nuevas licencias no aceptadas previamente

Recuerde: ejecute estos comandos con el mismo usuario que jenkins . En nuestro Debian, el usuario de Jenkins es simplemente Jenkins. En otras palabras: hacerlo como root creará las licencias aceptadas como root , por lo que Jenkins no las leerá.

Por cierto, encontramos sdkmanager en /var/lib/jenkins/tools/android-sdk/tools/bin . Si el suyo no está allí, find / -name "sdkmanager" con find / -name "sdkmanager"


Finalmente encontré una solución en Windows, para tener una instalación realmente silenciosa y automática:

En Windows, la siguiente sintaxis no funciona:

echo y | sdkmanager --licenses

Parece que la "y" no se envió correctamente al programa Java llamado en el lote.

La solución alternativa es crear un archivo file-y.txt con varias "y", una por línea, y usar

call sdkmanager --licenses < file-y.txt

Esto creará los archivos necesarios en el directorio de licencias. El problema probablemente esté relacionado con el uso de BufferedReader en Java


He encontrado esto con la alpha5 previa alpha5 .

Jake Wharton me señaló que actualmente puedes usar

mkdir -p "$ANDROID_SDK/licenses" echo -e "/n8933bad161af4178b1185d1a37fbf41ea5269c55" > "$ANDROID_SDK/licenses/android-sdk-license" echo -e "/n84831b9409646a918e30573bab4c9c91346d8abd" > "$ANDROID_SDK/licenses/android-sdk-preview-license"

para recrear la carpeta actual $ANDROID_HOME/license en su máquina. Esto tendría el mismo resultado que el proceso descrito en el enlace del mensaje de error ( http://tools.android.com/tech-docs/new-build-system/license ).

Los hashes son partes del texto de la licencia, que imagino se actualizarán periódicamente, por lo que este código solo funcionará durante un tiempo :)

E instálelo manualmente, pero es el nuevo propósito de la función de Gradle hacerlo.

Al principio me sorprendió que esto no funcionara de inmediato, incluso cuando había aceptado las licencias para los componentes nombrados a través de la herramienta de android , pero me señalaron que es el administrador de SDK dentro de AS el que crea la carpeta /licenses .

Supongo que las herramientas oficiales no querrían omitir este paso por razones legales.

Al releer las notas de la versión que dice

Descarga automática de SDK: Gradle intentará descargar los paquetes de SDK faltantes de los que depende un proyecto.

Lo que no significa que funcionará si aún no ha instalado las herramientas de Android y ya ha aceptado las últimas licencias.

EDITAR: Dicho esto, todavía no funciona en mi cuadro de prueba de gubuntu hasta que enlace el SDK a AS. Sin embargo, CI funciona bien, no estoy seguro de cuál es la diferencia ...


La herramienta de android está en desuso y, en su lugar, debe usar el sdkmanager . sdkmanager también escribe el archivo de licencias cuando lo acepta por primera vez. La licencia cambia según el SDK que esté utilizando, aunque el comando

echo -e "/n8933bad161af4178b1185d1a37fbf41ea5269c55" > "$ANDROID_SDK/licenses/android-sdk-license"

Funciona en algunos sistemas. No funcionará en todos. Algunas instalaciones de SDK esperan que el archivo de licencia finalice sin una nueva línea en el archivo, así que intente agregar un -n al comando echo.

echo -n -e "/n8933bad161af4178b1185d1a37fbf41ea5269c55" > "$ANDROID_SDK/licenses/android-sdk-license"

Si eso no funciona, puede intentar usar la codificación base64 en su lugar.

Entonces para descubrir mi licencia:

$> rm ${ANDROID_HOME}/ $> unzip tools_r25.2.3-linux.zip -d ${ANDROID_HOME} $> ${ANDROID_HOME}/tools/bin/sdkmanager "system-images;android-23;default;x86_64"

Le pedirá que acepte la licencia. Después de aceptarlo, lo copiará a ${ANDROID_HOME}/licenses/android-sdk-license . Para asegurarse de obtener siempre exactamente lo que está escrito, use base64 .

$> base64 ${ANDROID_HOME}/licenses/android-sdk-license Cjg5MzNiYWQxNjFhZjQxNzhiMTE4NWQxYTM3ZmJmNDFlYTUyNjljNTU=

Entonces puede usar base64 -d recrear el archivo exactamente.

$> echo Cjg5MzNiYWQxNjFhZjQxNzhiMTE4NWQxYTM3ZmJmNDFlYTUyNjljNTU= | base64 -d > ${ANDROID_HOME}/licenses/android-sdk-license

Puede verificar si el archivo escrito es el esperado ejecutando un sha1sum en él.

$> sha1sum ${ANDROID_HOME}/licenses/android-sdk-license da6b80c9c47b41c0bf7032938e7137a58a3dc249


Ok PARA ALGUIEN QUE TIENE ESTE NÚMERO A PARTIR DE 2018. Las respuestas anteriores NO me funcionaron en absoluto. Lo que sí funcionó fue abrir Android SDK: hacer clic en el botón DESCARGAR en la barra de herramientas y seleccionar los paquetes apropiados. Una vez que finalicen la descarga, le permitirá aceptar el acuerdo de licencia.


PARA APLICACIONES NATIVAS REACT:

Si tiene este problema para una aplicación React Native, además de los pasos mencionados anteriormente, asegúrese de tener el archivo local.properties en el directorio de Android (AppName / android) de su aplicación que apunta a su directorio ''sdk'':

sdk.dir=/PATH_TO_SDK/


Para aquellos que tienen problemas con el SDK de línea de comandos, la razón por la que no encontrarán las licencias que han aceptado es porque se han escrito en una ubicación diferente a $ANDROID_HOME/licenses que es donde deben estar.

Encontré que la solución más fácil era aceptar las licencias de esta manera:

$ANDROID_HOME/bin/sdkmanager --licenses --sdk_root=$ANDROID_HOME

Nota: Esto supone que ha configurado ANDROID_HOME para que apunte a donde esté instalado su SDK.


Para el nuevo Android Studio (2.3), la mejor manera de actualizar / aceptar todas las licencias es ejecutar:

tools/bin/sdkmanager --licenses

Es posible que aún necesite copiar los archivos de licencia a otras ubicaciones según su configuración.


Para la nueva utilidad sdkmanager :

yes | $ANDROID_HOME/tools/bin/sdkmanager "build-tools;24.0.3"

Hay un poco de retraso entre sí, por lo que el comando podría colgarse con la licencia mostrando por un tiempo, pero no requiere intervención humana.


Para un mensaje de error sobre la API número 25 del SDK:

android update sdk --no-ui --all --filter build-tools-25.0.1,android-25,extra-android-m2repository


Puede aceptar toda la licencia ejecutando el siguiente comando:

sdkmanager --licenses

Esto lo llevará a través de cada licencia que aún no ha aceptado y puede ingresar y para aceptar cada una de ellas.


Resolví este problema creando un repositorio público de git con los archivos de licencia aceptados. Luego uso wget para obtener estas licencias en cualquier máquina que necesite en un directorio [sdk-dir] / licensias antes de ejecutar ./gradlew para construir mi proyecto.


Si está utilizando Jenkins, puede usar el siguiente script bash como primer paso en el proceso de compilación:

(while sleep 3; do echo "y"; done) | $ANDROID_HOME/tools/android update sdk -u

Por supuesto, esto instalará TODAS las actualizaciones disponibles, pero le ahorrará algo de tiempo si puede ahorrar espacio en el disco. La suspensión es para evitar la línea de lectura rota en el programa de instalación, ya que "sí" no funciona correctamente en este caso.

EDITAR: También debe agregar el complemento "Instalar requisitos previos del proyecto Android" en el paso de compilación para obtener el $ ANDROID_HOME correcto si está utilizando el administrador SDK integrado.


Si usa tools/bin/sdkmanager --licenses , aún necesita tener una interacción humana. Tengo el problema al usar mi CI de gitlab. Esta es mi solución:

wget --quiet --output-document=tools.zip https://dl.google.com/android/repository/sdk-tools-linux-3859397.zip unzip -qq tools.zip echo y | tools/bin/sdkmanager "platforms;android-25" echo y | tools/bin/sdkmanager "platform-tools" echo y | tools/bin/sdkmanager "build-tools;25.0.2" echo y | tools/bin/sdkmanager "extras;android;m2repository" echo y | tools/bin/sdkmanager "extras;google;m2repository"

echo y dirá sí si hay alguna pregunta, pero necesita hacer una línea por paquete de instalación


También puedes simplemente ejecutar:

$ANDROID_HOME/tools/bin/sdkmanager --licenses

Y en Windows, ejecute:

%ANDROID_HOME%/tools/bin/sdkmanager --licenses


Tenga en cuenta que para cualquier persona que llegue a esta pregunta actualmente, build-tools-24.0.2 ahora (creo) ahora se considera obsoleto, por lo que obtendrá:

Error: Ignoring unknown package filter ''build-tools-24.0.2''

al ejecutar los diversos comandos que se han sugerido para instalarlos.

La solución es agregar --all :

android update sdk --no-ui --all --filter "build-tools-24.0.2"

Además, si está en Linux de 32 bits, todo después de las herramientas de compilación 23.0.1 es solo de 64 bits , por lo que no se ejecutará. Los usuarios de 32 bits están atascados en 23.0.1, la única forma de obtener herramientas de compilación posteriores es cambiar a 64 bits.


Tuve el mismo error al usar Cordova.

El problema se debió al hecho de que instalé Android Sdk a través de Android Studio y a través de apt con apt install android-sdk adb . Y Cordova estaba llamando a los archivos instalados a través de apt lugar de los archivos en mi directorio de inicio.

Funcionó una vez que cambié la ruta al SDK en bash:

# Change path export ANDROID_HOME="$HOME/Android/Sdk/" echo "Android home = $ANDROID_HOME" # Accept licenses eval "${ANDROID_HOME}/tools/bin/sdkmanager --licenses" # Run Cordova cordova build android

Luego eliminé los archivos del sistema que ya no se usaban: apt remove android-sdk adb .


Yo navego a:

/usr/lib/android-sdk/licenses

y escribí en la terminal:

echo -e "/n8933bad161af4178b1185d1a37fbf41ea5269c55" > $ANDROID_SDK/licenses/android-sdk-license"

Con permiso de root. Y funciona para mí ahora.


esto resolvió mi error

echo yes | $ANDROID_HOME/tools/bin/sdkmanager "build-tools;25.0.2"


para Windows, abra cmd e ingrese al directorio bin ejecutando el comando:

cd C:/Users/username/AppData/Local/Android/sdk/tools/android/Sdk/tools/bin

luego ejecute el comando sdkmanager --licenses , se le pide que acepte las licencias.


si corres yes | sdkmanager --licenses yes | sdkmanager --licenses , luego imprimimos contenido de $ANDROID_HOME/licenses/android-sdk-license ,

conseguiremos esto

# cat $ANDROID_HOME/licenses/android-sdk-license 8933bad161af4178b1185d1a37fbf41ea5269c55 d56f5187479451eabf01fb78af6dfcb131a6481e

Para GitLab CI, para aceptar las licencias de Android SDK Build-Tools 26.0.2, debe ejecutar esto

before_script: - mkdir -p $ANDROID_HOME/licenses - echo "8933bad161af4178b1185d1a37fbf41ea5269c55" > $ANDROID_HOME/licenses/android-sdk-license - echo "d56f5187479451eabf01fb78af6dfcb131a6481e" >> $ANDROID_HOME/licenses/android-sdk-license


cd $ANDROID_HOME/tools/bin yes | ./sdkmanager --update

o

yes | $ANDROID_HOME/tools/bin/sdkmanager --update