无法使用最新的 cmdline-tools cli 运行模拟器

问题描述

无法使用 cmdline-tools 运行模拟器,我收到以下错误

root@8110fcf520fc:~# emulator -avd pixel -verbose -no-boot-anim -no-window -gpu off -accel off
emulator: Android emulator version 30.7.5.0 (build_id 7491168) (CL:N/A)
emulator: Found AVD name 'pixel'
emulator: Found AVD target architecture: x86
emulator: argv[0]: 'emulator'; program directory: '/opt/Android/Sdk/emulator'
emulator:  Not a directory: /opt/Android/Sdk/Sdk/system-images/android-30/google_apis_playstore/x86/

PANIC: broken AVD system path. Check your ANDROID_SDK_ROOT value [/opt/Android/Sdk]!
root@8110fcf520fc:~# emulator -avd pixel -verbose -no-boot-anim -no-window -gpu off -accel off

所有的全局变量都配置好了,我只是好奇为什么会显示如下错误

emulator:  Not a directory: /opt/Android/Sdk/Sdk/system-images/android-30/google_apis_playstore/x86/

但是 system-imges 已正确安装在 ANDROID_SDK_ROOT 目录中

解决方法

我遇到了类似的问题。我的用户路径包含非 ASCII 字符。试试这个:

移动 .android 和 SDK 文件夹并重置配置

  1. 关闭所有编辑器和所有安卓相关程序;

  2. 检查“.android”文件夹的位置;

  3. 在与错误实现高度兼容的路径下创建一个新文件夹(无空格,长度少于 255 个字符,只有 ascii 字符[我把它放在 C:\Android 中,我也将 SDK 文件夹移动到])

  4. 将 .android-folder 移动到之前创建的文件夹中;

  5. 打开 .android-folder 的 avd-subfolder;

  6. 打开每个“.ini”文件(每个对应一个模拟器,存储在同名目录中,没有.ini扩展名);

  7. 将每个文件中 path-property 的值中的旧路径替换为 .android-folder 的新路径,使其指向 emulator-directory;

  8. 打开windows环境变量设置对话框;

  9. 为 ANDROID_SDK_HOME 添加新条目或编辑现有条目(对我而言:C:\Android);

  10. 将值设置为包含 .android-folder 的文件夹的位置。 (不是 .android 文件夹本身 [对我来说:C:\Android]);

  11. 按照此处指定的方式移动 SDK 内容:How to move SDK file after android studio is installed

确认解决方案在 Visual Studio Code 中有效:

  1. 启动编辑器;
  2. 检查模拟器是否列在设备列表中(右下蓝色按钮)。

如果您像我一样移动文件夹,您将拥有我拥有的 Windows 环境变量:

  1. ANDROID_HOME = C:\Android\Sdk ;
  2. ANDROID_SDK_HOME = C:\Android ;
  3. ANDROID_SDK_ROOT = C:\Android\Sdk;

从这里的一些答案启发的解决方案: https://developercommunity.visualstudio.com/t/panic-cannot-find-avd-system-path-please-define-an/1005744

也许不是,但我希望它无论如何都能有用

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...