在终端中输入cordova运行android后,我得到了这个错误:

Waiting for emulator to start...
PANIC: Broken AVD system path. Check your ANDROID_SDK_ROOT value [/Users/username/Library/Android/sdk]!

这发生在导出之后:

export ANDROID_SDK_ROOT='/Users/username/Library/Android/sdk'

在导出之前,我得到:

Waiting for emulator to start...
PANIC: Cannot find AVD system path. Please define ANDROID_SDK_ROOT

你知道我哪里错了吗?我确定这是sdk根,所以为什么我得到破碎的avd系统路径?


当前回答

macOS Catalina上也有类似的问题,问题原来是我正在运行的Java版本。默认情况下,当现在安装Java时,它是版本13,这与当前版本的avd不兼容。

此外,我在安装Java 8时遇到了麻烦,所以我使用了Homebrew中提供的Java 8:

brew cask install homebrew/cask-versions/adoptopenjdk8

然后,在我的~/。我将Java版本设置为1.8:

export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)

现在可以测试avdmanager是否可以运行并检测虚拟设备(之前,这导致了一个错误,说XML不能被解析):

avdmanager list avds

其他回答

我也有同样的问题。我删除了。android/avd文件夹中的图像模拟器,在我安装lib32stdc++6后:

sudo apt-get install lib32stdc++6

所以,它起作用了!魔法吗?

我在模拟器更新后也遇到了同样的问题。添加变量ANDROID_AVD_HOME后问题得到解决

重要提示:路径中不能使用非ascii字符。 最后,重新安装虚拟设备或手动覆盖配置设置.ini文件中的设备路径,其中包含非ascii字符的旧路径。

C:\Users\<user_name>\.android\avd\<avd_name>

我在mac os上运行模拟器时也有类似的问题。经过大量的斗争,我发现我在.bash_profile中设置了错误的sdk路径。我安装了两次android,它导致了这个问题。我设法修复通过匹配ANDROID_SDK_ROOT路径在.bash_profile与sdk,我在android工作室内使用。

在Windows 10(没有Android Studio)中,我通过传输“PANIC: Broken AVD系统路径”解决了这个问题。android的文件夹从默认位置“C:\Users\Леон”进入SDK文件夹。改变环境

ANDROID_SDK_ROOT=D:\Android\SDK
ANDROID_AVD_HOME=%ANDROID_SDK_ROOT%\.android\avd
ANDROID_EMULATOR_HOME=%ANDROID_SDK_ROOT%\.android   

我认为问题可能是在USER路径中的非ascii符号中,或者它们需要“全部放在一起”。

我用的是Windows 10,问题是我电脑中的avd目录中有非ascii字符。

下面是该怎么做:

以管理员身份运行cmd

执行如下命令:

mklink /D C:\\.android C:\\Users\\-yourUsername-\\.android

(这将在非ascii字符的路径和新路径之间创建一个符号链接)

在环境变量中添加值为C的ANDROID_AVD_HOME变量:\\.android\avd。