在终端中输入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_AVD_HOME后问题得到解决

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

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

其他回答

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

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

echo $ANDROID_HOME && flutter doctor -v

删除早期创建的设备。 关闭Android工作室。 打开:控制面板->系统和安全->系统->高级系统设置-> 环境变量。 创建新变量ANDROID_SDK_HOME并设置 新路径(在我的情况下,它是F:\Coding2019\Android\AVDdevices)。推动“ok”。 打开Android Studio。 创建新设备。在下拉菜单中创建完成后,点击“查看详细信息”可以看到新AVD的新路径。

如果你仍然需要一个答案,那么在我的情况下,它在(重新)下载Android图像后工作,但直接从Android Studio,而不是通过Visual Studio按钮。

我在Windows 10上就遇到过这个问题。 我尝试了几种解决办法,但没有一个奏效。 以下是我解决问题的方法:

Uninstalled Android Studio, SDK, .android and .AndroidStudio folders in %USERPROFILE%, Android folder in %LOCALAPPDATA%. Uninstalled Java. Downloaded latest Java JDK:https://www.oracle.com/technetwork/java/javase/downloads/jdk13-downloads-5672538.html and set PATH Environment Variable: https://docs.oracle.com/en/java/javase/11/install/installation-jdk-microsoft-windows-platforms.html#GUID-96EB3876-8C7A-4A25-9F3A-A2983FEC016A I created new Windows 10 local user using LATIN CHARACTERS with admin priviledges. Switched to the new user and installed Android Studio. When the setup wizard was shown, I selected Custom option and checked Android emulator to be installed. I left all location folders as DEFAULT.

现在我的新用户帐户一切正常。

看看我的答案:https://stackoverflow.com/a/60201016/12529885

尝试手动指定参数-sysdir,并检查错误消息是否改变。

他们可能打不清楚,参见源代码https://android.googlesource.com/platform/external/qemu/+/1a15692cded92d66dea1a51389a3c4b9e3b3631a/android/emulator/main-emulator.cpp

而且你可以比在网上搜索更容易解决。

if (!strcmp(opt, "-sysdir") && nn+1 < argc) {
    sysDir = argv[nn+1];
    continue;
}
// some other codes.....
if (avdName) {
    if (!isCpuArchSupportedByRanchu(avdArch)) {
        APANIC("CPU Architecture '%s' is not supported by the QEMU2 emulator, (the classic engine is deprecated!)",
               avdArch);
    }
    std::string systemPath = getAvdSystemPath(avdName, sysDir);
    if (systemPath.empty()) {
        const char* env = getenv("ANDROID_SDK_ROOT");
        if (!env || !env[0]) {
            APANIC("Cannot find AVD system path. Please define "
                   "ANDROID_SDK_ROOT\n");
        } else {
            APANIC("Broken AVD system path. Check your ANDROID_SDK_ROOT "
                   "value [%s]!\n",
                   env);
        }
    }
}