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