如何在 Ubuntu 18.04 上安裝 Android SDK Manager

sdkmanager 是一個 CLI 工具,允許用戶查看、安裝、更新和卸載 Android SDK 的可用包。

本教程將教您如何使用終端在 Ubuntu 18.04 上安裝 Android SDK Manager。 之前我們已經看到瞭如何在 Ubuntu 16.04 上安裝 Android SDK Manager。

如果您已經在使用 Android Studio,則無需使用 sdkmanager,因為您可以從 IDE 管理您的 SDK 包。 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 環境變量中。 為此,您可以運行以下命令:

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

如果您已經下載或解壓 SDK-tools 包到其他目錄,請不要忘記使用適當的路徑。 要永久添加目錄,只需將上面的行添加到 ~/.bashrc 或者 ~/.profile 文件。

來自終端的 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

要解決此問題,請編輯位於安裝文件夾的 bin 文件夾中的 sdkamanger 腳本(在我們的示例中,文件的完整路徑是 /home/ubuntu/tools/bin/sdkamanager) 並在第 31 行添加以下行:

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

編輯後,該行必須如下所示:

DEFAULT_JVM_OPTS='"-Dcom.android.sdklib.toolsdir=$APP_HOME" -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.

實際上,上面的消息中有兩個單獨的錯誤。 一個與​​安全連接有關,因為它無法查看可用包並檢查包的更新。 第二個說sdkmanager無法加載 /home/ubuntu/.android/repositories.cfg 文件。

為了修復錯誤,我們創建了 repositories.cfg 文件(因為它默認沒有創建)並運行 sdkmanager --list 命令與 --no_https 旗幟。 按以下順序運行以下命令:

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

運行這些命令後,您將能夠看到本文上面顯示的輸出。

使用 sdkmanager 安裝、更新和卸載軟件包

要安裝軟件包,請運行以下命令:

sdkmanager --no_https [package_name]

如果要卸載多個軟件包,可以將它們添加到文件中並使用 –package_file 標誌。 為了 example

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

請注意, package_name 必須來自可用的包列表,如果您不使用 no_https 標記它會在我們運行時拋出相同的錯誤 sdkmanager --list 命令。

要更新所有軟件包,您可以運行:

sdkmanager --no_https --update

請注意,如果您更新 SDK 工具,則需要編輯 /home/ubuntu/tools/bin/sdkamanager 再次文件並添加 -XX:+IgnoreUnrecognizedVMOptions --add-modules java.se.ee 在第 31 行,上面提到的文件將從服務器獲取並成為默認文件。

要卸載軟件包,請運行以下命令:

sdkmanager --uninstall [package_name]

或者

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

另請閱讀:

  • 如何在 Ubuntu 16.04 上安裝 Android SDK Manager
  • 如何在 Ubuntu 18.04 上安裝 Java 8

Android SDK Manager 的安裝本身非常簡單,但在此過程中您可能會遇到與 JAVA 相關的各種問題。 但是,有針對您可能面臨的問題類型描述的變通方法。 因此,使用本教程,您可以確定自己會成功。