sdkmanager je nástroj CLI, který uživatelům umožňuje prohlížet, instalovat, aktualizovat a odinstalovat dostupné balíčky pro Android SDK.
Tento tutoriál vás naučí, jak nainstalovat Android SDK Manager na Ubuntu 18.04 pomocí terminálu. Dříve jsme viděli, jak nainstalovat Android SDK Manager na Ubuntu 16.04.
Pokud již používáte Android Studio, nemusíte používat sdkmanager, protože můžete své balíčky SDK spravovat z IDE. Nástroj sdkmanager je poskytován v balíčku Android SDK Tools, takže jej nainstalujeme, abychom mohli používat sdkmanager.
Nainstalujte balíček nástrojů Android SDK
Před instalací preferovaného nástroje musíme aktualizovat všechny balíčky a nainstalovat JAVA, protože Android SDK ji ke spuštění vyžaduje. Chcete-li tak učinit, můžete spustit následující příkazy v níže uvedeném pořadí:
sudo apt update
sudo apt install default-jdk
Jakmile je JAVA nainstalována na stroji, můžeme spustit následující příkaz, abychom zkontrolovali verzi Java a ujistili se, že byla nainstalována správně:
java -version
Výstup musí vypadat takto
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)
Po úspěšné instalaci JAVA můžeme přistoupit k instalaci Android SDK. Potřebujeme stáhnout binární soubory z webu Android Developers. Pokud v prohlížeči otevřete výše uvedený odkaz, najdete dostupné soubory zip v části „Pouze nástroje příkazového řádku“. Chcete-li stáhnout binární soubory z terminálu, spusťte příkaz níže:
wget https://developer.android.com/studio/#downloads
Jakmile je nainstalován, rozbalte jej pomocí následujícího příkazu
unzip sdk-tools-linux-3859397.zip
Bude vytvořen nový adresář s názvem tools. K dokončení instalace musíme do naší proměnné prostředí PATH přidat následující cesty. Chcete-li tak učinit, můžete spustit příkaz níže:
export PATH=/home/ubuntu/tools:/home/ubuntu/tools/bin:$PATH
Pokud jste si stáhli nebo rozbalili balíček SDK-tools do jiného adresáře, nezapomeňte prosím použít vhodné cesty. Chcete-li přidat adresáře trvale, stačí přidat řádek výše do ~/.bashrc
nebo ~/.profile
soubory.
Využití Android SDK Manager z terminálu
Po instalaci Android SDK můžeme použít sdkmanager
nástroj pro zobrazení, instalaci, aktualizaci a odinstalaci balíčků pro Android SDK z terminálu.
Seznam nainstalovaných, dostupných balíčků a aktualizací
Chcete-li vypsat všechny nainstalované, dostupné balíčky a ty, které mají aktualizaci, můžeme spustit:
sdkmanager --list
Výstup bude vypadat takto:
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
Při spuštění tohoto příkazu můžete mít problémy. Např. výstupem příkazu může být chyba podobná té níže:
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
Chcete-li tento problém vyřešit, upravte skript sdkamanger, který se nachází ve složce bin instalační složky (v našem případě byla úplná cesta k souboru /home/ubuntu/tools/bin/sdkamanager
) a do 31. řádku přidejte následující řádek:
-XX:+IgnoreUnrecognizedVMOptions --add-modules java.se.ee
Po úpravě musí tento řádek vypadat takto:
DEFAULT_JVM_OPTS='"-Dcom.android.sdklib.toolsdir=$APP_HOME" -XX:+IgnoreUnrecognizedVMOptions --add-modules java.se.ee'
Jakmile soubor upravíte a uložíte, můžete spustit sdkmanager --list
příkaz znovu. Zobrazí se pouze nainstalované balíčky a objeví se další chybová zpráva, která bude podobná té níže:
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.
Ve skutečnosti jsou ve výše uvedené zprávě dvě samostatné chyby. Jedna souvisí se zabezpečeným připojením, kvůli kterému nemůže prohlížet dostupné balíčky a kontrolovat balíčky na aktualizace. Druhý říká, že sdkmanager nemůže načíst /home/ubuntu/.android/repositories.cfg
soubor.
Abychom chyby opravili, vytvoříme soubor repositories.cfg (protože ve výchozím nastavení nebyl vytvořen) a spustíme sdkmanager --list
příkaz s --no_https
vlajka. Spusťte následující příkazy v níže uvedeném pořadí:
touch /home/ubuntu/.android/repositories.cfg
sdkmanager --no_https --list
Po spuštění těchto příkazů budete moci vidět výstup uvedený výše v tomto článku.
Instalujte, aktualizujte a odinstalujte balíčky pomocí sdkmanager
Chcete-li balíček nainstalovat, spusťte následující příkaz:
sdkmanager --no_https [package_name]
Pokud chcete odinstalovat několik balíčků, můžete je přidat do souboru a použít příznak --package_file. Například
sdkmanager --no_https --package_file=/path/to/package_file
Všimněte si, že package_name musí být ze seznamu dostupných balíčků a pokud nepoužijete no_https
příznak vyvolá stejnou chybu, když spustíme sdkmanager --list
příkaz.
Chcete-li aktualizovat všechny balíčky, můžete spustit:
sdkmanager --no_https --update
Upozorňujeme, že pokud aktualizujete nástroje SDK, musíte upravit /home/ubuntu/tools/bin/sdkamanager
soubor znovu a přidejte -XX:+IgnoreUnrecognizedVMOptions --add-modules java.se.ee
na 31. řádku, protože výše zmíněný soubor bude načten ze serveru a stane se výchozím.
Chcete-li balíček odinstalovat, spusťte níže uvedený příkaz:
sdkmanager --uninstall [package_name]
nebo
sdkmanager --uninstall --package_file=/path/to/package_file
Přečtěte si také:
- Jak nainstalovat Android SDK Manager na Ubuntu 16.04
- Jak nainstalovat Java 8 na Ubuntu 18.04
Samotná instalace Android SDK Manageru je velmi jednoduchá, ale během procesu se můžete setkat s různými problémy, které souvisejí s JAVA. Existují však řešení popsaná pro typy problémů, se kterými se můžete setkat. Takže pomocí tohoto tutoriálu si můžete být jisti, že to bude fungovat.