Sdkmanager – это инструмент CLI, который позволяет пользователям просматривать, устанавливать, обновлять и удалять доступные пакеты для Android SDK.

В этой статье рассказывается, как установить Android SDK Manager на Ubuntu 18.04 с помощью терминала.

Если вы уже используете Android Studio, вам не нужно использовать sdkmanager, так как вы можете управлять пакетами SDK из среды IDE.

Инструмент sdkmanager предоставляется в пакете Android SDK Tools, поэтому мы собираемся установить последний, чтобы использовать sdkmanager.

Установите пакет инструментов Android SDK

Перед установкой предпочтительного инструмента нам необходимо обновить все пакеты и установить JAVA, так как Android SDK требует его запуска.

Для этого вы можете выполнить следующие команды в порядке, указанном ниже:

 sudo apt update
sudo apt install default-jdk 

Как только JAVA установлен на машине, мы можем запустить следующую команду, чтобы проверить версию java и убедиться, что она установлена ​​правильно:

 java -version 

Результат должен выглядеть так:

 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)

После успешной установки JAVA мы можем приступить к установке Android SDK. Нам нужно загрузить двоичные файлы с сайта разработчиков Android.

Если вы открываете ссылку выше в браузере, вы можете найти доступные zip-файлы в разделе «Только для командной строки».

Чтобы загрузить двоичные файлы из терминала, запустите следующую команду:

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

 

Как только он будет установлен, разархивируйте следующую команду

 unzip sdk-tools-linux-3859397.zip 

Будет создан новый каталог с именем tools.

Для завершения установки нам необходимо добавить следующие пути к нашей переменной среды PATH.

Для этого вы можете запустить следующую команду:

Использование Android SDK Manager из терминала

После установки Android SDK мы можем использовать инструмент sdkmanager для просмотра, установки, обновления и удаления пакетов для Android SDK с терминала.

Список установленных, доступных пакетов и обновлений

Чтобы просмотреть все установленные, доступные пакеты и те, которые имеют обновление, мы можем запустить:

 sdkmanager --list 

Результат будет выглядеть следующим образом:

 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

При выполнении этой команды могут возникнуть проблемы.

Например. вывод команды может быть ошибкой, подобной приведенной ниже:

 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 

Чтобы устранить эту проблему, отредактируйте скрипт sdkamanger, который находится в папке bin папки установки (в нашем случае полный путь к файлу был / home / ubuntu / tools / bin / sdkamanager) и добавить следующее в 31 строку:

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

После того как вы отредактировали файл и сохранили, вы можете снова запустить команду sdkmanager –list.

Отобразятся только установленные пакеты и появится другое сообщение об ошибке, которое будет выглядеть следующим образом:

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.
Actually there are two separate errors in the message above. One is related to secure connection due to which it cannot view available packages and check the packages for updates. The second one says that sdkmanager cannot load /home/ubuntu/.android/repositories.cfg file.

Чтобы исправить ошибки, мы создаем файл repositories.cfg (так как он не был создан по умолчанию) и запускаем команду sdkmanager -list с флагом –no_https.

Выполните следующие команды в следующем порядке:

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

Установка, обновление и удаление пакетов с помощью sdkmanager

Чтобы установить пакет, выполните следующую команду:

 sdkmanager --no_https [package_name] 

Если вы хотите удалить несколько пакетов, вы можете добавить их в файл и использовать флаг –package_file. Например

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

Обратите внимание, что имя_пакета должно быть из списка доступных пакетов, и если вы не используете флаг no_https, он выдает ту же ошибку, когда мы запускаем команду sdkmanager -list.

Чтобы обновить все пакеты, вы можете запустить:

 sdkmanager --no_https --update 

Обратите внимание: если вы обновите инструменты SDK, вам нужно снова отредактировать файл / home / ubuntu / tools / bin / sdkamanager и добавить в 31 строку строку -XX: + IgnoreUnrecognizedVMOptions –add-modules java.se.ee, как упомянутый выше файл будет извлечен с сервера и станет стандартным.

Чтобы удалить пакет, выполните следующую команду:

 sdkmanager --uninstall [имя_пакета] 

или

 sdkmanager --uninstall --package_file = / путь / to / package_file

Установка самого Android SDK Manager очень проста, но во время процесса вы можете столкнуться с различными проблемами, связанными с JAVA.

Тем не менее, есть обходные пути, описанные для типов проблем, с которыми вы можете столкнуться. Поэтому, используя этот учебник, вы можете быть уверены, что установите его!

Поделитесь статьей:

Добавить комментарий