使用Android Sdkmanager手动安装Android SDK
需要Android SDK但不需要Android Studio?
下载Android命令行工具
https://developer.android.com/studio#command-tools
1.将解压缩后的文件夹更名为
2.按照以下结构创建文件树,或参考这里
┌ android-sdk
│ ├ cmdline-tools
│ │ ├ latest
│ │ │ ├ bin
│ │ │ ├ lib
│ │ │ ├ NOTICE.txt
│ │ │ ├ source.properties
特别地,针对Flutter使用者,执行以下命令来移除 “[✗] Android toolchain” 的错误:
$ flutter doctor
...
[✗] Android toolchain
✗ cmdline-tools component is missing
Run `path/to/sdkmanager --install "cmdline-tools;latest"`
See https://developer.android.com/studio/command-line for more details.
...
# 执行此命令以移除错误: [✗] Android toolchain
$ flutter config --android-sdk "/path/to/android-sdk"
3.使用sdkmanager安装SDK
如果不将
*列出已安装和可安装的 sdk/emulator/images 等等
$ sdkmanager --list
Installed packages:=====] 100% Computing updates...
Path | Version | Description | Location
------- | ------- | ------- | -------
cmdline-tools;latest | 6.0 | ... | ...
...
Available Packages:
Path | Version | Description
------- | ------- | -------
...
*安装sdk
$ sdkmanager "platform-tools" "platforms;android-30" "build-tools;30.0.3"
$ # OR
$ sdkmanager "platform-tools"
$ sdkmanager "platforms;android-30"
$ sdkmanager "build-tools;30.0.3"
*以同样的方式安装Android模拟器和镜像
$ sdkmanager "emulator"
$ sdkmanager "system-images;android-30;default;arm64-v8a"
sdkmanager用法参考:https://developer.android.com/studio/command-line/sdkmanager
命令行启动模拟器
1.列出是否有符合的镜像,没有的话应当检查
$ emulator -list-avds
Pixel_3a_API_32_arm64-v8a
2.启动模拟器
$ emulator -avd Pixel_3a_API_32_arm64-v8a
若发生以下错误:
$ emulator -avd Pixel_3a_API_32_arm64-v8a
INFO | Android emulator version 31.2.8.0 (build_id 8143646) (CL:N/A)
PANIC: Cannot find AVD system path. Please define ANDROID_SDK_ROOT
-
检查 /path/to/android-sdk 下是否包含
emulator ,system-images ,platform-tools ,platforms 这四个文件夹 -
检查 ~/.android/avd/*somefile*.avd/config.ini 文件,例如此处是:
$ cat ~/.android/avd/Pixel_3a_API_32_arm64-v8a.avd/config.ini ... image.sysdir.1 = system-images/android-32/google-api/arm64-v8a/ ...而 /path/to/android-sdk/ 的文件树结构是(仅针对我的电脑):
┌ android-sdk │ ├ system-images │ │ ├ android-30 │ │ │ ├ default │ │ │ │ ├ arm64-v8a │ │ │ │ │ │ │ │ │ │如果不想设置系统变量$ANDROID_SDK_ROOT,那么可以直接修改
image.sysdir.1 属性,在本例中,它是:image.sysdir.1 = /path/to/android-sdk/system-images/android-30/default/arm64-v8a/