Cómo instalar Android SDK Manager en Ubuntu 18.04

Sdkmanager es una herramienta CLI que permite a los usuarios ver, instalar, actualizar y desinstalar los paquetes disponibles para el SDK de Android.

Este tutorial le enseñará cómo instalar Android SDK Manager en Ubuntu 18.04 usando la terminal. Anteriormente, hemos visto cómo instalar Android SDK Manager en Ubuntu 16.04.

Si ya está usando Android Studio, no necesita usar sdkmanager, ya que puede administrar sus paquetes SDK desde el IDE. La herramienta sdkmanager se proporciona en el paquete de herramientas del SDK de Android, por lo que vamos a instalar este último para poder utilizar sdkmanager.

Instalar el paquete de herramientas del SDK de Android

Antes de instalar la herramienta preferida, debemos actualizar todos los paquetes e instalar JAVA, ya que el SDK de Android requiere que se ejecute. Para hacerlo, puede ejecutar los siguientes comandos en el orden mencionado a continuación:

sudo apt update
sudo apt install default-jdk

Una vez que JAVA está instalado en la máquina, podemos ejecutar el siguiente comando para verificar la versión de Java y asegurarnos de que se haya instalado correctamente:

java -version

La salida debe verse así

openjdk version "10.0.1" 2018-04-17
OpenJDK Runtime Environment (build 10.0.1+10-Ubuntu-3ubuntu1)
OpenJDK 64-Bit Server VM (build 10.0.1+10-Ubuntu-3ubuntu1, mixed mode)

Después de la instalación exitosa de JAVA, podemos proceder a la instalación de Android SDK. Necesitamos descargar los binarios de Sitio web de desarrolladores de Android. Si abre el enlace anterior en el navegador, puede encontrar archivos zip disponibles en la parte “Solo herramientas de línea de comandos”. Para descargar binarios desde la terminal, ejecute el siguiente comando:

wget https://developer.android.com/studio/#downloads

Una vez que esté instalado, descomprímalo con el siguiente comando

unzip sdk-tools-linux-3859397.zip

Se creará un nuevo directorio llamado herramientas. Para completar la instalación, necesitamos agregar las siguientes rutas a nuestra variable de entorno PATH. Para hacerlo, puede ejecutar el siguiente comando:

export PATH=/home/ubuntu/tools:/home/ubuntu/tools/bin:$PATH

Si ha descargado o descomprimido el paquete de herramientas SDK en otro directorio, no olvide utilizar las rutas adecuadas. Para agregar los directorios de forma permanente, simplemente agregue la línea de arriba a la ~/.bashrc o ~/.profile archivos.

Uso de Android SDK Manager desde la terminal

Una vez que se haya instalado el SDK de Android, podemos usar sdkmanager herramienta para ver, instalar, actualizar y desinstalar paquetes para el SDK de Android desde el terminal.

Lista de paquetes instalados, disponibles y actualizaciones

Para enumerar todos los paquetes instalados, disponibles y los que tienen actualización, podemos ejecutar:

sdkmanager –list

La salida se verá como la siguiente:

Installed packages:
 Path | Version | Description | Location
 ------- | ------- | ------- | -------
 platform-tools | 27.0.1 | Android SDK Platform-Tools | platform-tools/
 tools | 26.0.1 | Android SDK Tools 26.0.1 | tools/

Available Packages:
 Path | Version | Description
 ------- | ------- | -------
 add-ons;addon-g..._apis-google-15 | 3 | Google APIs
 add-ons;addon-g..._apis-google-16 | 4 | Google APIs
 add-ons;addon-g..._apis-google-17 | 4 | Google APIs
 add-ons;addon-g..._apis-google-18 | 4 | Google APIs
 add-ons;addon-g..._apis-google-19 | 20 | Google APIs
 add-ons;addon-g..._apis-google-21 | 1 | Google APIs
 add-ons;addon-g..._apis-google-22 | 1 | Google APIs
 add-ons;addon-g..._apis-google-23 | 1 | Google APIs
 add-ons;addon-g..._apis-google-24 | 1 | Google APIs
 add-ons;addon-g...e_gdk-google-19 | 11 | Glass Development Kit Preview
 ...
 system-images;a...s_playstore;x86 | 2 | Google Play Intel x86 Atom Sys...
 system-images;a...laystore;x86_64 | 2 | Google Play Intel x86 Atom_64 ...
 tools | 26.1.1 | Android SDK Tools

Available Updates:
 ID | Installed | Available
 ------- | ------- | -------
 tools | 26.0.1 | 26.1.1
 done

Puede tener problemas al ejecutar este comando. Por ejemplo, la salida del comando puede ser un error como el siguiente:

Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema
 at com.android.repository.api.SchemaModule$SchemaModuleVersion.<init>(SchemaModule.java:156)
 at com.android.repository.api.SchemaModule.<init>(SchemaModule.java:75)
 at com.android.sdklib.repository.AndroidSdkHandler.<clinit>(AndroidSdkHandler.java:81)
 at com.android.sdklib.tool.SdkManagerCli.main(SdkManagerCli.java:117)
 at com.android.sdklib.tool.SdkManagerCli.main(SdkManagerCli.java:93)
 Caused by: java.lang.ClassNotFoundException: javax.xml.bind.annotation.XmlSchema
 at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:582)
 at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:190)
 at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:499)
 ... 5 more

Para resolver este problema, edite el script sdkamanger que se encuentra en la carpeta bin de la carpeta de instalación (en nuestro caso, la ruta completa al archivo era /home/ubuntu/tools/bin/sdkamanager) y agregue la siguiente línea en la línea 31:

-XX:+IgnoreUnrecognizedVMOptions --add-modules java.se.ee

Después de la edición, esa línea debe verse a continuación:

DEFAULT_JVM_OPTS='"-Dcom.android.sdklib.toolsdir=$APP_HOME" -XX:+IgnoreUnrecognizedVMOptions --add-modules java.se.ee'

Una vez que haya editado el archivo y lo haya guardado, puede ejecutar el sdkmanager --list comando de nuevo. Solo se mostrarán los paquetes instalados y aparecerá otro mensaje de error que será como el siguiente:

Warning: javax.net.ssl.SSLException: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
Warning: Failed to download any source lists!
Warning: File /home/ubuntu/.android/repositories.cfg could not be loaded.

En realidad, hay dos errores separados en el mensaje anterior. Uno está relacionado con la conexión segura debido a que no puede ver los paquetes disponibles y comprobar si hay actualizaciones en los paquetes. El segundo dice que sdkmanager no puede cargar /home/ubuntu/.android/repositories.cfg Archivo.

Para corregir los errores creamos el archivo repositories.cfg (ya que no ha sido creado por defecto) y ejecutamos el sdkmanager --list comando con --no_https bandera. Ejecute los siguientes comandos en el orden siguiente:

touch /home/ubuntu/.android/repositories.cfg
sdkmanager --no_https --list

Después de ejecutar estos comandos, podrá ver el resultado que se muestra arriba en este artículo.

Instalar, actualizar y desinstalar paquetes usando sdkmanager

Para instalar el paquete, ejecute el siguiente comando:

sdkmanager --no_https [package_name]

Si desea desinstalar varios paquetes, puede agregarlos a un archivo y usar la marca –package_file. Para example

sdkmanager --no_https --package_file=/path/to/package_file

Tenga en cuenta que package_name debe ser de la lista de paquetes disponibles y si no usa no_https marca arrojará el mismo error cuando ejecutamos el sdkmanager --list mando.

Para actualizar todos los paquetes, puede ejecutar:

sdkmanager --no_https --update

Tenga en cuenta que si actualiza las herramientas del SDK, debe editar /home/ubuntu/tools/bin/sdkamanager archivo de nuevo y agregue -XX:+IgnoreUnrecognizedVMOptions --add-modules java.se.ee en la línea 31, ya que el archivo mencionado anteriormente se obtendrá del servidor y se convertirá en el predeterminado.

Para desinstalar el paquete, ejecute el siguiente comando:

sdkmanager --uninstall [package_name]

o

sdkmanager --uninstall --package_file=/path/to/package_file

Lea también:

  • Cómo instalar Android SDK Manager en Ubuntu 16.04
  • Cómo instalar Java 8 en Ubuntu 18.04

La instalación de Android SDK Manager en sí es muy simple, pero durante el proceso puede enfrentar diferentes problemas relacionados con JAVA. Sin embargo, se describen soluciones para los tipos de problemas que puede enfrentar. Entonces, usando este tutorial, puede estar seguro de que lo hará funcionar.