在终端中输入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系统路径?


当前回答

在我的情况下,它被打破了,因为ANDROID_HOME和ANDROID_SDK_ROOT是不同的,所以一旦我设置ANDROID_HOME与ANDROID_SDK_ROOT相同,它就开始工作了。

其他回答

我在Mac上也遇到了同样的问题,我是这么做的:

我删除了与brew一起安装的android-sdk 我将ANDROID_HOME变量设置为ANDROID_SDK_ROOT=/Users/username/Library/Android/sdk。

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

我知道它不是特定的颤振,也不是Windows操作系统,但这个线程是谷歌的第一个结果,也是这个问题的主要结果,所以:

使用windows 10并在使用Flutter时收到此错误消息,此命令起作用:

echo $ANDROID_HOME && flutter doctor -v

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

下面是该怎么做:

以管理员身份运行cmd

执行如下命令:

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

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

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

我有同样的问题后,设置以下路径变量消失了 注意:AVD主路径与其他三个不同。