¿Cómo instalar las herramientas de compilación del SDK de Android en la línea de comando?

Resuelto Zhenguo Yang asked hace 54 años • 0 respuestas

Quiero configurar el entorno de desarrollo de Android desde la línea de comandos y encuentro el siguiente problema:

wget http://dl.google.com/android/android-sdk_r22.0.5-linux.tgz

después de extraer el archivo, ejecute

tools/android update sdk --no-ui

Sin embargo, es demasiado lento al ejecutarse.

Fetching https://dl-ssl.google.com/android/repository/addons_list-2.xml

El resultado es que no hay nada en la carpeta build-tools, y lo que quiero es aapt y apkbuilder, ya que quiero compilar el apk desde la línea de comandos sin ant.

Zhenguo Yang avatar Jan 01 '70 08:01 Zhenguo Yang
Aceptado

De forma predeterminada, el SDK Manager desde la línea de comandos no incluye las herramientas de compilación en la lista. Están en la categoría "obsoletos". Para ver todas las descargas disponibles, utilice

android list sdk --all

Y luego, para obtener uno de los paquetes en esa lista desde la línea de comando, use:

android update sdk -u -a -t <package no.>

Donde -u representa --no-ui, -a representa --all y -t representa --filter.

Si necesita instalar varios paquetes, haga lo siguiente:

SDK de actualización de Android -u -a -t 1,2,3,4,..,n

Donde 1,2,...,n es el número de paquete que aparece con el comando de lista anterior

nsg avatar Oct 17 '2013 00:10 nsg

Como se mencionó en otras respuestas, puede usar la --filteropción para limitar los paquetes instalados:

android update sdk --filter ...

Las otras respuestas no mencionan que puede usar identificadores de cadena constantes en lugar de índices (que cambiarán) para las opciones de filtro. Esto es útil para instalaciones desatendidas o con scripts. Hombre por --filteropción:

... Esto también acepta los identificadores devueltos por 'list sdk --extended'.

android list sdk --all --extended:

Packages available for installation or update: 97
----------
id: 1 or "tools"
     Type: Tool
     Desc: Android SDK Tools, revision 22.6.2
----------
id: 2 or "platform-tools"
     Type: PlatformTool
     Desc: Android SDK Platform-tools, revision 19.0.1
----------
id: 3 or "build-tools-19.0.3"
     Type: BuildTool
     Desc: Android SDK Build-tools, revision 19.0.3

Luego puede usar los identificadores de cadena como opciones de filtro para especificar con precisión las versiones que desea:

android update sdk --filter tools,platform-tools,build-tools-19.0.3etc.

robd avatar Apr 21 '2014 11:04 robd

La versión 25.2.3 (y superiores) del Android SDK Toolspaquete contiene una nueva herramienta, sdkmanager , que simplifica la tarea de instalar herramientas de compilación desde la línea de comandos.
Se encuentra en android_sdk/tools/binla carpeta.

Uso (de la documentación ):

Lista de paquetes instalados y disponibles:

sdkmanager --list [options] \
      [--channel=channel_id] // Channels: 0 (stable), 1 (beta), 2 (dev), or 3 (canary)

Utilice la opción de canal para incluir un paquete desde un canal hasta Channel_id inclusive. Por ejemplo, especifique el canal canary para enumerar paquetes de todos los canales.

Instalar paquetes:

sdkmanager packages [options]

El packagesargumento es una ruta de estilo SDK, entre comillas (por ejemplo, "build-tools;25.0.0"o "platforms;android-25"). Puede pasar varias rutas de paquetes, separadas por un espacio, pero cada una debe estar entre comillas.

Uso de ejemplo (en mi Mac):

alex@mbpro:~/sdk/tools/bin$ ls ../../build-tools/  
25.0.0/   
alex@mbpro:~/sdk/tools/bin$ ./sdkmanager "build-tools;25.0.2"  
done   
alex@mbpro:~/sdk/tools/bin$ ls ../../build-tools/  
25.0.0/ 25.0.2/

También puede especificar varias opciones , por ejemplo, forzar que todas las conexiones utilicen HTTP ( --no_https) o utilizar un servidor proxy ( --proxy_host=addressy --proxy_port=port).

Para comprobar las opciones disponibles, utilice la --helpbandera. En mi máquina (Mac), el resultado es el siguiente:

alex@mbpro:~/sdk/tools/bin$ ./sdkmanager --help
Usage: 
  sdkmanager [--uninstall] [<common args>] \
    [--package_file <package-file>] [<packages>...]
  sdkmanager --update [<common args>]
  sdkmanager --list [<common args>]

In its first form, installs, or uninstalls, or updates packages.
    <package> is a sdk-style path (e.g. "build-tools;23.0.0" or 
             "platforms;android-23").
    <package-file> is a text file where each line is a sdk-style path
                   of a package to install or uninstall.
    Multiple --package_file arguments may be specified in combination
     with explicit paths.
In its second form (with --update), currently installed packages are
    updated to the latest version.
In its third form, all installed and available packages are printed out.

Common Arguments:
    --sdk_root=<sdkRootPath>: Use the specified SDK root instead of the SDK containing this tool
    --channel=<channelId>: Include packages in channels up to <channelId>.
                           Common channels are:
                           0 (Stable), 1 (Beta), 2 (Dev), and 3 (Canary).

    --include_obsolete: With --list, show obsolete packages in the
                        package listing. With --update, update obsolete
                        packages as well as non-obsolete.
    --no_https: Force all connections to use http rather than https.
    --proxy=<http | socks>: Connect via a proxy of the given type.
    --proxy_host=<IP or DNS address>: IP or DNS address of the proxy to use.
    --proxy_port=<port #>: Proxy port to connect to.

* If the env var REPO_OS_OVERRIDE is set to "windows",
  "macosx", or "linux", packages will be downloaded for that OS.
Alex Lipov avatar Dec 19 '2016 13:12 Alex Lipov

ADB Build-Tools no se descargará automáticamente mediante el comando android update sdk --no-ui

Entonces, para instalar Buil-Tool escriba (en la consola):

android list sdk --all

Recuerde el número que aparece antes del elemento y ejecute lo siguiente:

android update sdk -u --all --filter <number>

Los comandos deben escribirse en /YourFolder/android-sdk-linux/tools.

También para la carpeta remota (servidor abierto por ssh, por ejemplo) escriba:

**./android** list sdk --all
**./android** update sdk -u --all --filter <number>

Para obtener una lista simple de paquetes ADB, escriba en la terminal:

android list sdk

para instalar todos los paquetes:

android update sdk --no-ui

O con filtros (la coma es separador):

android update sdk --no-ui --filter 3,5,8,14
Oleksandr B avatar Apr 04 '2014 11:04 Oleksandr B

Una gran fuente de información que encontré al intentar instalar todo lo relacionado con el SDK de Android desde la línea de comandos fue este Dockerfile. Dentro del Dockerfile puedes ver que el autor ejecuta un solo comando para instalar platform toolsy build toolssin ninguna otra interacción. En el caso que ha planteado el OP, el comando se adaptaría a:

echo y | $ANDROID_HOME/tools/android update sdk --all --filter build-tools-21.1.0 --no-ui
geoand avatar Nov 21 '2014 11:11 geoand