在终端中输入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系统路径?
修复用户包含非ascii字符的问题
对于“PANIC: AVD系统路径损坏”的人。检查你的ANDROID_SDK_ROOT",原因可能是你的用户在users中包含非ascii字符。
因此,SDK和。android文件夹和AVD文件夹都需要移动到另一个文件夹。
修改SDK路径:
打开Android Studio,进入配置,选择SDK管理器。将当前Android SDK位置更改为例如“C:\Android\ SDK”(或其他地方,只是不在包含非ascii字符的用户文件夹中)。
添加如下系统变量:
ANDROID_SDK_ROOT C:\Android\Sdk
ANDROID_HOME C:\Android\Sdk
更改AVD路径:
要更改AVD文件夹的位置(通常放置在“C:\Users\<用户名>\.android\ AVD”中),您需要更改.android的位置。首先关闭Android Studio,然后添加系统变量ANDROID_SDK_HOME和你想要的。Android的新位置的路径,例如在另一个例子中使用的C:\ ANDROID_SDK_HOME:
ANDROID_SDK_HOME C:\Android_SDK_HOME
添加后,运行Android Studio。然后再关上。现在应该出现了一个名为.android的文件夹。
你需要做的下一件也是最后一件事是设置ANDROID_AVD_HOME系统变量。在本例中,它将在C:\Android_SDK_HOME\.android\avd中
ANDROID_AVD_HOME C:\Android_SDK_HOME\.android\avd
我希望这能解决一些问题。:)
ANDROID_SDK_HOME是指向根目录的指针。该文件默认创建在“C:\Users\name\. android”目录下。android”,而不是你的SDK文件夹的根目录。然后:
—将ANDROID_SDK_HOME分配到SDK根文件夹将无效。
-如果你的路”。“android”文件有非ascii字符,它将无法工作。
- AVD文件夹必须在您当前的”。android”文件。
所以答案是:
Change your SDK folder, if you need, like the previous answers (inside the project on Android Studio).
Close Android Studio.
Control Panel > System > Advanced System Settings > Environment Variables.
Add a new User variable:
Variable Name: ANDROID_SDK_HOME
Variable Value: C:\src (or any folder that has not problems with non-ASCII characters or S.O. privileges)
THE PATH THAT YOU WILL ENTER CANNOT BE ROOT FOLDER OF YOUR ANDROID SDK!!!
Open Android Studio. Make sure a folder called ".android" was created in your new location.
Delete the Android Virtual Device (AVD) that you created.
Close and open Android Studio.
Create a new AVD and see the magic happens.
欢呼。
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