Linux Debian下SDK Manager CLI启动AVD失败:AVD系统路径损坏
我来帮你搞定这个AVD启动的问题~先梳理下你的当前情况:
- 系统:Linux Debian
- SDK-tools文件夹位置:
/root/Downloads - AVD存储目录:
/root/.android - 已在
~/.bashrc中配置的环境变量:
export ANDROID_HOME=/root/Downloads/sdk-tools export ANDROID_SDK_ROOT=$ANDROID_HOME
- 执行启动命令
./emulator -avd pixel时出现报错:
Error:PANIC: Broken AVD system path. Check your ANDROID_SDK_ROOT value [/root/Downloads/sdk-tools:/root/flutter/bin:/root/anaconda3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin]!
问题根源
这个报错的核心是你把ANDROID_SDK_ROOT指向了错误的目录。ANDROID_SDK_ROOT需要指向完整的Android SDK根目录,而不是仅指向sdk-tools(也就是SDK的工具子目录)。完整的SDK根目录应该包含emulator、platforms、system-images等关键子文件夹,这些是启动AVD必需的组件。
解决步骤
1. 修正环境变量配置
打开~/.bashrc文件,把原来的两行修改为:
# 指向完整的SDK根目录,假设你的所有SDK组件都在/root/Downloads下 export ANDROID_HOME=/root/Downloads export ANDROID_SDK_ROOT=$ANDROID_HOME # 把SDK的关键工具目录加入PATH,方便直接调用命令 export PATH=$PATH:$ANDROID_SDK_ROOT/emulator:$ANDROID_SDK_ROOT/platform-tools:$ANDROID_SDK_ROOT/tools
2. 让环境变量立即生效
在终端执行以下命令,无需重启终端即可加载新的配置:
source ~/.bashrc
3. 验证SDK组件是否完整
运行以下命令检查是否安装了启动AVD必需的组件(比如模拟器、对应版本的系统镜像):
sdkmanager --list
如果发现缺少emulator或者你AVD对应的系统镜像(比如system-images;android-33;google_apis;x86_64),用以下命令安装(替换为你需要的版本):
sdkmanager "emulator" "system-images;android-33;google_apis;x86_64"
4. 验证AVD配置路径(可选)
如果还是报错,可以检查AVD的配置文件:
打开/root/.android/avd/pixel.avd/config.ini,找到image.sysdir.1这一行,确保它指向的路径是SDK根目录下的系统镜像文件夹,比如:
image.sysdir.1=system-images/android-33/google_apis/x86_64/
5. 重新启动AVD
现在直接在终端执行命令即可启动AVD:
emulator -avd pixel
内容的提问来源于stack exchange,提问作者Allen Johnson

