El sdkmanager es una herramienta CLI que permite a los usuarios ver, instalar, actualizar y desinstalar 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 vimos cómo instalar Android SDK Manager en Ubuntu 16.04.
Si ya usa 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 SDK de Android, por lo que vamos a instalar este último para poder usar sdkmanager.
Instalar el paquete de herramientas SDK de Android
Antes de instalar la herramienta preferida, debemos actualizar todos los paquetes e instalar JAVA, ya que el SDK de Android lo requiere para ejecutarse. 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 una instalación exitosa de JAVA, podemos proceder a la instalación de Android SDK. Necesitamos descargar los binarios del sitio web de desarrolladores de Android. Si abre el enlace anterior en el navegador, puede encontrar los archivos zip disponibles en la parte "Solo herramientas de línea de comandos". Para descargar archivos binarios desde la terminal, ejecute el siguiente comando:
wget https://developer.android.com/studio/#downloads
Una vez instalado descomprima con el siguiente comando
unzip sdk-tools-linux-3859397.zip
Se creará un nuevo directorio llamado herramientas. Para completar la instalación, debemos 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 ~/.bashrc
o ~/.profile
archivos.
Uso de Android SDK Manager desde 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 la terminal.
Lista de paquetes y actualizaciones instalados y disponibles
Para enumerar todos los paquetes instalados, disponibles y los que tienen actualizaciones, podemos ejecutar:
sdkmanager --lista
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. P.ej. 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 tener el siguiente aspecto:
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 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 buscar 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 se ha creado de forma predeterminada) 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 el indicador --package_file. Por ejemplo
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 sdkmanager --list
comando.
Para actualizar todos los paquetes, puede ejecutar:
sdkmanager --no_https --update
Tenga en cuenta que si actualiza las herramientas SDK, debe editar /home/ubuntu/tools/bin/sdkamanager
archivo nuevamente 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, existen soluciones alternativas descritas para los tipos de problemas que puede enfrentar. Entonces, usando este tutorial, puede estar seguro de que lo hará funcionar.