sdkmanager è uno strumento CLI che consente agli utenti di visualizzare, installare, aggiornare e disinstallare i pacchetti disponibili per l'SDK Android.
Questo tutorial ti insegnerà come installare Android SDK Manager su Ubuntu 18.04 usando il terminale. In precedenza abbiamo visto come installare Android SDK Manager su Ubuntu 16.04.
Se stai già utilizzando Android Studio, non è necessario utilizzare sdkmanager poiché puoi invece gestire i tuoi pacchetti SDK dall'IDE. Lo strumento sdkmanager è fornito nel pacchetto Android SDK Tools, quindi installeremo quest'ultimo per poter utilizzare sdkmanager.
Installa il pacchetto degli strumenti dell'SDK per Android
Prima di installare lo strumento preferito, è necessario aggiornare tutti i pacchetti e installare JAVA, poiché Android SDK lo richiede per essere eseguito. Per farlo puoi eseguire i seguenti comandi nell'ordine indicato di seguito:
sudo apt update
sudo apt install default-jdk
Una volta installato JAVA sulla macchina, possiamo eseguire il seguente comando per verificare la versione java e per essere sicuri che sia stata installata correttamente:
java -version
L'output deve essere simile a questo
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)
Dopo una corretta installazione di JAVA, possiamo procedere all'installazione di Android SDK. Dobbiamo scaricare i binari dal sito Web degli sviluppatori Android. Se apri il link sopra nel browser puoi trovare i file zip disponibili nella parte "Solo strumenti della riga di comando". Per scaricare i binari dal terminale, esegui il comando seguente:
wget https://developer.android.com/studio/#downloads
Una volta installato, decomprimilo con il seguente comando
unzip sdk-tools-linux-3859397.zip
Verrà creata una nuova directory denominata tools. Per completare l'installazione dobbiamo aggiungere i seguenti percorsi alla nostra variabile di ambiente PATH. Per farlo, puoi eseguire il comando seguente:
export PATH=/home/ubuntu/tools:/home/ubuntu/tools/bin:$PATH
Se hai scaricato o decompresso il pacchetto SDK-tools in un'altra directory, non dimenticare di utilizzare i percorsi appropriati. Per aggiungere le directory in modo permanente, aggiungi semplicemente la riga sopra al ~/.bashrc
o ~/.profile
file.
Utilizzo di Android SDK Manager dal terminale
Una volta installato l'SDK Android, possiamo utilizzare sdkmanager
strumento per visualizzare, installare, aggiornare e disinstallare i pacchetti per l'SDK Android dal terminale.
Elenca i pacchetti installati, disponibili e gli aggiornamenti
Per elencare tutti i pacchetti installati, disponibili e quelli che hanno un aggiornamento possiamo eseguire:
sdkmanager --list
L'output sarà simile a quello seguente:
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
È possibile che si verifichino problemi durante l'esecuzione di questo comando. Per esempio. l'output del comando può essere un errore come quello seguente:
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
Per risolvere questo problema, modifica lo script sdkamanger che si trova nella cartella bin della cartella di installazione (nel nostro caso il percorso completo del file era /home/ubuntu/tools/bin/sdkamanager
) e aggiungi la seguente riga nella 31a riga:
-XX:+IgnoreUnrecognizedVMOptions --add-modules java.se.ee
Dopo la modifica, quella riga deve apparire come di seguito:
DEFAULT_JVM_OPTS='"-Dcom.android.sdklib.toolsdir=$APP_HOME" -XX:+IgnoreUnrecognizedVMOptions --add-modules java.se.ee'
Dopo aver modificato il file e salvato, puoi eseguire sdkmanager --list
comando di nuovo. Verranno mostrati solo i pacchetti installati e apparirà un altro messaggio di errore che sarà simile a quello seguente:
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.
In realtà ci sono due errori separati nel messaggio sopra. Uno è relativo alla connessione sicura a causa della quale non può visualizzare i pacchetti disponibili e controllare i pacchetti per gli aggiornamenti. Il secondo dice che sdkmanager non può caricare /home/ubuntu/.android/repositories.cfg
file.
Per correggere gli errori creiamo il file repository.cfg (poiché non è stato creato per impostazione predefinita) ed eseguiamo sdkmanager --list
comando con --no_https
bandiera. Esegui i seguenti comandi nell'ordine seguente:
touch /home/ubuntu/.android/repositories.cfg
sdkmanager --no_https --list
Dopo aver eseguito questi comandi sarai in grado di vedere l'output mostrato sopra in questo articolo.
Installa, aggiorna e disinstalla i pacchetti utilizzando sdkmanager
Per installare il pacchetto, esegui il seguente comando:
sdkmanager --no_https [package_name]
Se vuoi disinstallare diversi pacchetti puoi aggiungerli a un file e usare --package_file flag. Ad esempio
sdkmanager --no_https --package_file=/path/to/package_file
Nota che nome_pacchetto deve appartenere all'elenco dei pacchetti disponibili e se non usi no_https
flag genererà lo stesso errore quando abbiamo eseguito sdkmanager --list
comando.
Per aggiornare tutti i pacchetti, puoi eseguire:
sdkmanager --no_https --update
Nota che se aggiorni gli strumenti SDK devi modificare /home/ubuntu/tools/bin/sdkamanager
file di nuovo e aggiungi -XX:+IgnoreUnrecognizedVMOptions --add-modules java.se.ee
nella 31a riga, in quanto il file sopra menzionato verrà prelevato dal server e diventerà quello predefinito.
Per disinstallare il pacchetto, esegui il comando seguente:
sdkmanager --uninstall [package_name]
o
sdkmanager --uninstall --package_file=/path/to/package_file
Leggi anche:
- Come installare Android SDK Manager su Ubuntu 16.04
- Come installare Java 8 su Ubuntu 18.04
L'installazione di Android SDK Manager è molto semplice, ma durante il processo potresti incontrare diversi problemi relativi a JAVA. Tuttavia, sono descritte soluzioni alternative per i tipi di problemi che puoi affrontare. Quindi, usando questo tutorial puoi essere sicuro che lo farai funzionare.