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


当前回答

你应该添加AVD模拟器。 去这个位置:

C:\Users\%username%\AppData\Local\Android\sdk\

启动AVD管理器,在第二个选项卡(设备定义)中单击“创建AVD”按钮。

其他回答

好的,我可以从cordova运行android,我把ANDROID_HOME改为,

export ANDROID_HOME=/usr/local/opt/android-sdk

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变量包含正确的路径应该会让模拟器启动。

在Windows 10(没有Android Studio)中,我通过传输“PANIC: Broken AVD系统路径”解决了这个问题。android的文件夹从默认位置“C:\Users\Леон”进入SDK文件夹。改变环境

ANDROID_SDK_ROOT=D:\Android\SDK
ANDROID_AVD_HOME=%ANDROID_SDK_ROOT%\.android\avd
ANDROID_EMULATOR_HOME=%ANDROID_SDK_ROOT%\.android   

我认为问题可能是在USER路径中的非ascii符号中,或者它们需要“全部放在一起”。

要修复或避免此问题,请确保:

You have an environment variable ANDROID_SDK_ROOT pointing to a root folder of android sdk. You have a correct file structure in the sdk folder. cmdline-tools, emulator, platform-tools, system-images, platforms should be present. If you don't have these folders you should install missing components. emulator is the emulator itself. system-images has iso images of OS to run in the emulator. platforms has platform packages required to compile an app for different APIs. platform-tools has adb and other necessary tools. Without these components the emulator wont start and will post the same error about broken avd path. Make sure that you downloaded through sdkmanager matching api versions of system image and platform. e.g. for API-30 platforms;android-30 and system-images;android-30;default;x86_64. Make sure that your avd devices are located in HOME/.android/avd. If you have custom location for avd devices you should create one more environment variable ANDROID_AVD_HOME pointing to /avd/ folder.

本文提供了所有环境变量的信息,但除了ANDROID_SDK_ROOT和ANDROID_AVD_HOME,你不需要任何其他的环境变量。

这意味着您使用工具的路径不正确。这是它在mac上使用brew的样子。注意版本。

export ANDROID_SDK_ROOT='/usr/local/Cellar/android-sdk/24.4.1_1'

在你的情况下,看起来你应该运行这个:

export ANDROID_SDK_ROOT='/Users/username/Library/Android/sdk'