我有一个shell脚本,定期运行以使我的CI服务器上的Android SDK保持最新。我正在从android update sdk --filter <foopackage>
迁移到:sdkmanager <foopackage>
。
对于标识符中没有major.minor.patch
的包(例如platform-tools
,tools
,extras;*
) - 以前的方法会隐式更新这些包。阅读文档(https://developer.android.com/studio/command-line/sdkmanager.html)目前还不清楚sdkmanager <foopackage>
是否会在已经安装的情况下更新软件包,或者只在缺少时才安装它? (在这种情况下,还需要sdkmanager --update <foopackage>
)
答案 0 :(得分:1)
来自文档:
packages参数是一个SDK风格的路径,如-list命令所示,用引号括起来(例如,&#34; build-tools; 25.0.0&#34;或者&#34;平台; android -25&#34)
--list
给出的输出类似于:
Available Packages:
Path | Version | Description
------- | ------- | -------
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
build-tools;25.0.0 | 25.0.0 | Android SDK Build-Tools 25
build-tools;25.0.1 | 25.0.1 | Android SDK Build-Tools 25.0.1
build-tools;25.0.2 | 25.0.2 | Android SDK Build-Tools 25.0.2
cmake;3.6.3155560 | 3.6.3155560 | CMake 3.6.3155560
docs | 1 | Documentation for Android SDK
extras;android;gapid;3 | 3.1.0 | GPU Debugging tools
extras;android;m2repository | 43.0.0 | Android Support Repository
extras;google;auto | 1.1 | Android Auto Desktop Head Unit...
extras;google;play_billing | 5 | Google Play Billing Library
extras;google;simulators | 1 | Android Auto API Simulators
extras;google;webdriver | 2 | Google Web Driver
extras;m2reposi...ut;1.0.0-alpha9 | 1 | ConstraintLayout for Android 1...
extras;m2reposi...out;1.0.0-beta5 | 1 | ConstraintLayout for Android 1...
lldb;2.2 | 2.2.3271982 | LLDB 2.2
ndk-bundle | 13.1.3345770 | NDK
patcher;v4 | 1 | SDK Patch Applier v4
platform-tools | 25.0.3 | Android SDK Platform-Tools
platforms;android-24 | 2 | Android SDK Platform 24
platforms;android-25 | 3 | Android SDK Platform 25
sources;android-25 | 1 | Sources for Android 25
system-images;a...google_apis;x86 | 5 | Google APIs Intel x86 Atom Sys...
system-images;a...ult;armeabi-v7a | 5 | ARM EABI v7a System Image
system-images;a...google_apis;x86 | 3 | Google APIs Intel x86 Atom Sys...
system-images;a...gle_apis;x86_64 | 3 | Google APIs Intel x86 Atom_64 ...
tools | 25.2.5 | Android SDK Tools 25.2.5
Available Updates:
ID | Installed | Available
------- | ------- | -------
extras;google;m2repository | 42 | 43
因此,要更新包,您需要传递Path
列下的完整值。例如,以下命令sdkmanager "platform-tools"
将更新平台工具,因为Path
列中没有版本。
但命令sdkmanager "build-tools"
会抛出错误
错误:无法找到包构建工具
因此,您需要使用命令sdkmanager <foopackage>
传递完整值以安装/更新软件包。
但是,如果您使用sdkmanager --update
,它将为当前安装的所有软件包安装更新。