在终端中输入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_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.
欢呼。
NativeScript
对于任何通过NativeScript启动android模拟器遇到麻烦的人来说,它可能是env vars ANDROID_HOME和ANDROID_SDK_ROOT已被覆盖。
我是如何给自己制造一个问题的,那就是安装Android Studio来生成一个不同的模拟器。我这样做是在我已经通过home brew安装了android sdk之后。
因此,如果在NativeScript安装期间,您选择通过HomeBrew安装android sdk, NativeScript将设置如下:
ANDROID_HOME=/usr/local/share/android-sdk
ANDROID_SDK_ROOT=/usr/local/share/android-sdk
随后安装Android Studio将覆盖这些值:
ANDROID_HOME=/Users/[User]/Library/Android/sdk
ANDROID_SDK_ROOT=/Users/[User]/Library/Android/sdk
因此,Android studio和Android sdk的NativeScript/Brew安装自然存在冲突。删除其中一个和/或验证env变量包含正确的路径应该会让模拟器启动。