PANIC: AVD系统路径损坏。检查ANDROID_SDK_ROOT值

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

254333 次浏览

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

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

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

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

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

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

我也有同样的问题。我删除了。android/avd文件夹中的图像模拟器,在我安装lib32stdc++6后:

sudo apt-get install lib32stdc++6

所以,它起作用了!魔法吗?

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

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

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

检查您的AVD使用的系统映像是否已在$ANDROID_SDK_ROOT/system-images/下下载

在我的情况下,它被打破了,因为ANDROID_HOME和ANDROID_SDK_ROOT是不同的,所以一旦我设置ANDROID_HOME与ANDROID_SDK_ROOT相同,它就开始工作了。

当你将你的AVD或SDK移动到另一个目录,或用新的SDK替换旧的SDK,或以某种方式使SDK损坏时,可能会有几个不同的问题。

下面我将描述我所知道的所有可能的问题,并将为您提供几种解决它们的方法。

当然,我假设你已经创建了任何AVD,它位于C:\Users\<user_name>\.android\avd (Windows)或~/.android/avd (Linux/MacOS)中。

如果你将.android移动到另一个地方,那么将ANDROID_SDK_HOME环境变量设置为包含你的.android的父目录的路径,并确保AVD管理器成功找到你的虚拟设备。

还要检查<user_home>/.android/avd/<avd_name>.ini中的路径


不完整/损坏的SDK结构

PANIC: Cannot find AVD system path. Please define ANDROID_SDK_ROOT
PANIC: Broken AVD system path. Check your ANDROID_SDK_ROOT value

如果模拟器无法找到SDK,或者SDK损坏,就会发生这两个错误。

因此,首先我建议完全删除ANDROID_SDK_ROOT变量。只有当模拟器位于SDK目录之外时才需要它。但通常情况下,模拟器位于SDK目录中。在这种情况下,它必须检测SDK位置自动。如果没有,那么您的SDK可能有错误的文件树。请做到以下几点:

  1. 检查SDK目录至少有这4个目录:emulatorplatformsplatform-toolssystem-images这是非常重要的!这些目录必须存在。如果其中一些不存在,那么就创建空dirs。

  2. 进入<user_home>/.android/avd/<avd_name>,打开config.ini。找到image.sysdir.1属性。它指向SDK目录中的目录,该目录包含实际的系统映像。确保该目录存在并包含build.propsystem.img等文件。如果它没有,那么你必须打开SDK经理并下载你的AVD所需的系统映像(见下文)。

如果一切设置正确,当这些关于ANDROID_SDK_ROOT的错误必须消失时。如果不是,那么现在你可以尝试设置ANDROID_SDK_ROOT变量。


未安装所需软件包和HAXM

您可能面临的下一个问题是模拟器开始启动,但立即挂断或退出。这可能意味着您没有安装所有必需的软件包。

另一个可能的错误是:

无法自动检测到ADB二进制文件。在扩展设置页面中添加自定义的ADB路径之前,一些模拟器功能将无法工作。

所以,要成功启动任何AVD,你必须确保至少安装了这些包:

emulator (Android Emulator)
platform-tools (Android SDK Platform-Tools)
tools (Android SDK Tools)

正如我前面提到的,你必须安装你的AVD正在使用的系统映像,例如system-images;android-25;google_apis;x86

注意,SDK的最新版本没有独立的SDK Manager.exe。相反,你必须使用Android Studio或tools\bin\sdkmanager.bat (Linux/MacOS可能有sh文件)。

使用sdkmanager --listsdkmanager --list --verbose列出所有可用的包

安装包使用sdkmanager <package1> <package2> ...

我还建议手动在你的系统上安装HAXM


Qcow2-files指的是不正确的/不存在的base-image

我要提到的最后一个问题发生在你试图将AVD或SDK从一台计算机或目录移动到另一台计算机或目录时。在这种情况下,你可能会得到这样的错误:

qemu-system-i386.exe: -drive if=none,重叠检查=none,缓存=不安全,索引=0,id=system,文件=C:\Users\<old_user_name>\.android\avd\<avd_name>

avd \ system.img。qcow2,只读:无法打开备份文件:无法打开'<old_sdk_dir>\system-images\android-22\google_apis\x86\system.img':无效参数

有两种方法可以解决这个问题:

  1. 如果你不关心AVD包含的数据,只需从AVD目录中删除所有qcow2文件(例如,从<user_home>/.android/avd/<avd_name>中)。在这种情况下,你会得到一个干净的Android版本,就像硬复位后。

  2. 如果模拟器上的数据对你很重要,那么使用任何HEX编辑器(我更喜欢HxD)逐个打开所有qcow2文件,找到基本img文件的路径,并在Overwrite模式中将其更改为正确的路径(以保留文件大小)。然后选择路径并获取其十六进制长度(例如2F)。2F表示ASCII斜杠/。把它放到13位置:

Edit Android qcow2 files using HxD HEX editor

PS:不确定,但可能有一些实用程序,如qemu-img,允许设置不同的基本映像。嗯,对我来说,手动编辑二进制文件更容易。


现在你可能可以成功启动你的Android虚拟设备了。我希望如此。

< p >在Mac: 我已经使用brew和Android Studio安装了android-sdk。不知何故,两次安装导致了这个问题。当我使用brew cask uninstall android-sdk卸载sdk的brew安装并将以下vars添加到我的env时。它工作。< / p >
export ANDROID_HOME=/Users/<Username>/Library/Android/sdk
export ANDROID_SDK_ROOT=$ANDROID_HOME

奥列格·切尔的回答让我找到了解决办法。正如他提到的

去/。Android /avd/打开config.ini。找到>image.sysdir。1房地产。它指向SDK中包含系统>图像的目录。确保该目录存在并包含build等文件。道具>系统。img等等。如果它没有,那么你必须打开SDK管理器和>下载系统图像你的AVD需要(见下文)。

我在avd目录中找到了相应的模拟器*.ini文件。 在那里,我修改了“image.sysdir”。1”条目。我将相对路径替换为绝对路径(在前面附加ANDROID_SDK_ROOT)。之后,仿真器从命令行启动,就像预期的那样

在尝试了一段时间其他谷歌“解决方案”后,只有的东西对我有用,在Windows上设置ANDROID_SDK_ROOT环境变量后,还添加和删除ANDROID_HOME和ANDROID_SDK_HOME变量,是Xerox23的答案-编辑AVD的config.ini将ANDROID_SDK_ROOT的值硬编码到image.sysdir。1房地产。

这是使用Android Studio 3.0.1和模拟器26.1.4,从Android Studio内的AVD管理器启动虚拟设备。

我在Mac上也遇到了同样的问题,我是这么做的:

  1. 我删除了与brew一起安装的android-sdk
  2. 我将ANDROID_HOME变量设置为与ANDROID_SDK_ROOT=/Users/username/Library/Android/sdk相同。
  • Platfoms目录在/usr/local/share/android-sdk

  • 我创建了一个名为平台的空目录来解决这个问题。

对于windows机器:在尝试了大量的设置路径,删除路径等。 最后的工作是找到文件夹C:\Users\johndoe\.android并删除它。之后你就可以使用Android Studio了,它会要求你下载并安装一个新的AVD,它会覆盖并创建一个新的文件夹和文件。

我有同样的问题,在设置以下路径变量后消失了 注意:AVD主路径与其他三个不同

enter image description here

今天刚刚遇到了这个问题,并设法解决了它。

模拟器:[140735565005632]:ERROR:android/android-emu/android/qt/qt_setup.cpp:28: qt library not found at /Users/your_user_name/ library /android/ sdk/ Emulator /lib64/qt/lib

15:08 Emulator: Could not launch '/Users/your_user_name/Library/Android/sdk/ Emulator /qemu/darwin-x86_64/qemu-system-x86_64':没有这样的文件或目录

解决方法非常简单。通过Android Studio => tools => Android => SDK manager => SDK tools => select Android emulator => Apply

我使用的是macOS High Sierra的MacBook Pro,我相信你的机器与此问题无关。在第一次使用Android Studio 3.0.1运行Android Studio安装管理器时,模拟器没有明显安装,至少对我来说是这样

同时,确保你在.bashrc或.zshrc中定义了你的路径,就像这样:

export ANDROID_HOME=/Users/your_user_name/Library/Android/sdk
export ANDROID_SDK_ROOT=$ANDROID_HOME
export PATH=$PATH:$ANDROID_HOME/emulator
export PATH=$PATH:$ANDROID_HOME/tools
export PATH=$PATH:$ANDROID_HOME/platform-tools

删除使用Homebrew Android SDK作为默认SDK时的错误

和@ freak一样,我用homebrew (mac的包管理器)安装了android-sdk。我需要执行下面的操作来修复这个错误,因为我在遵循nativescript教程时遇到了这个错误。如果你像我一样打算使用android-sdk版本的brew版本使用这个答案(这将允许你使用nativescripts tns run android api),如果你想要android工作室默认的android-sdk遵循@ freak的答案。

配置Android Studio以使用Homebrew的Android SDK

基本上你只需要在Android studio中更改Android SDK的位置。首先在android studio中打开一个项目。然后点击这个按钮打开SDK管理器。

android sdk manager button location

接下来,当android SDK管理器的默认首选项出现时,你需要单击android SDK位置旁边的编辑。

enter image description here

查找Homebrew的Android SDK的位置

接下来,你需要在sdk组件设置屏幕上实际更新sdk位置,我的brew android-sdk位于这里/usr/local/share/android-sdk。你可以通过运行brew cask info android-sdk来找到你的安装位置,然后在输出的底部附近它应该说:

You can control android sdk packages via the sdkmanager command.
You may want to add to your profile:


'export ANDROID_SDK_ROOT="/usr/local/share/android-sdk"'

exported ANDROID_SDK_ROOT变量的值(这里是/usr/local/share/android-sdk)是自制的android sdk的位置。

然后点击“Android SDK Location”按钮(图中标记为1),粘贴Homebrew的Android SDK位置。

enter image description here

然后通过安装任何包来完成向导。在这一步中,我需要删除并重新创建我的设备模拟器,但在那之后,它似乎工作得很好。

设置Android SDK环境变量指向Homebrew的Android SDK

此外,如果你要走Homebrew路线,你可能想确保你的配置文件设置脚本已经将ANDROID_HOMEANDROID_SDK_ROOT环境变量设置为android sdk的Homebrew位置,否则上述将无法工作。如果你在安装Android Studio之前安装了Homebrew,这可以从Homebrew位置更改,正如在这个答案中 by @Jamie盔甲所指出的那样。您可以通过运行echo $ANDROID_HOMEecho $ANDROID_SDK_ROOT来检查android sdk的环境变量是否设置正确,并验证它们都显示了android sdk的Homebrew位置。

如果你需要改变ANDROID_HOME和ANDROID_SDK_ROOT值,你可以在你的Mac配置文件设置中这样做,可能是~/.bash_profile, "~/。Bashrc”,或者“~/”。并定义如下:

export ANDROID_HOME="/usr/local/share/android-sdk"
export ANDROID_SDK_ROOT="/usr/local/share/android-sdk"

您需要将两个导出的值更改为Homebrew android SDK位置的正确值,然后保存文件。为了验证正确的值已经被写入,你应该首先关闭并打开你的终端,这应该重新运行文件并重置环境变量,或者你可以通过运行source <profile file name>来获取文件,其中是你编辑和保存的配置文件。然后你可以重新运行echo $ANDROID_HOMEecho $ANDROID_SDK_ROOT来验证它们是否有Homebrew android sdk的位置。

我遇到了这个问题,因为我从早期就开始使用React Native。谷歌已经弃用命令行工具,坚持使用Android studio。我的解决方案是删除命令行工具

rm -rf /usr/local/Cellar/android-sdk

rm /usr/local/bin/android

打开AS安装sdk v6,按照指示https://facebook.github.io/react-native/docs/getting-started.html#1-install-android-studio

制作一个新的AVD,它将毫无错误地启动

为了解决这个问题,我必须使用SDK Manager.exe(在“C:\Program Files (x86)\Android\ Android - SDK”中)安装缺少系统映像的包。我注意到我需要的系统映像(“Android -23”)在“C:\Program Files (x86)\Android\ Android -sdk\system-images”中丢失了。

在运行SDK Manager.exe并安装适当的包后,我可以在Android Studio中运行模拟器。

以下是对我有效的解决方案:

https://www.embarcadero.com/starthere/xe5/mobdevsetup/android/en/creating_an_android_emulator.html

这将解决你在macOS中的问题:

pico ~/.bash_profile


export ANDROID_HOME=/Users/$USER/Library/Android/sdk
export ANDROID_SDK_HOME=/Users/$USER/Library/Android/sdk
export ANDROID_AVD_HOME=/Users/$USER/.android/avd
export PATH=${PATH}:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools:$ANDROID_AVD_HOME


source ~/.bash_profile
我的Windows10也有同样的问题,

.
. 打开Android Studio
< br > -工具 - SDK Manager
-复制Android SDK Location
Android SDK < br > 设置系统环境变量
ANDROID_HOME和ANDROID_SDK_ROOT
系统环境变量 < / p >

按照下面的步骤,这将解决您的问题

1.

export ANDROID_HOME=/usr/local/Cellar/android-sdk/24.4.1
export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools:$ANDROID_HOME/bin

2.

Go to android studio preferences => Build, Execution, Deployment => Build Tools => Gradle => Android studio  => Enable embedded Maven Repository should be selected.

3.

Go to android studio preferences => Appearance & Behavior => System Settings => Android SDK => Go to SDK Tools and select Android Emulator

误差实际上是不同的。运行./emulator with -verbose选项很有帮助,因为它会显示实际的错误。

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

我通过删除文件/usr/local/share/android-sdk解决了这个问题, 因为这个文件是我用自制软件创建的。< / p >
export ANDROID_HOME=/Users/<username>/Library/Android/sdk


export ANDROID_SDK_ROOT=/Users/<username>/Library/Android/sdk


export ANDROID_AVD_HOME=/Users/<username>/.android/avd

够了....

我在Windows 10上运行Android Studio,在环境变量上设置ANDROID_HOME和ANDROID_SDK_ROOT,仍然得到错误。

结果发现,我忘了下载设备。

enter image description here

enter image description here

下载“丢失的系统映像”后,一切工作正常。

打开你的android studio,然后关注工具栏。

Goto工具> SDK管理器然后

外观,行为>系统设置> Android SDK

现在在选项卡中从这里复制Android SDK位置 Android SDK < / p >

然后去你的环境变量,然后设置路径与这些变量

  1. ANDROID_HOME
  2. ANDROID_SDK_ROOT

环境变量 .

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

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

echo $ANDROID_HOME && flutter doctor -v

我下载了一个新的模拟器,在我的Mac电脑上解决了这个问题。

我在模拟器更新后也遇到了同样的问题。在添加变量ANDROID_AVD_HOME enter image description here后,问题得到解决

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

C:\Users\<user_name>\.android\avd\<avd_name>
  1. 删除早期创建的设备。
  2. 关闭Android工作室。
  3. 打开:控制面板->系统&security -> System ->系统高级设置-> . security 李环境变量。< / >
  4. 创建新变量ANDROID_SDK_HOME并设置 新路径(在我的情况下,它是F:\Coding2019\Android\AVDdevices)。李推“ok”。< / >
  5. 打开Android Studio。
  6. 创建新设备。在下拉菜单中创建完成后,点击“查看详细信息”可以看到新AVD的新路径。
我在Windows 10上就遇到过这个问题。 我尝试了几种解决办法,但没有一个奏效。
下面是我解决问题的方法:

  • 卸载AndroidStudio, SDK, .Android和. androidstudio文件夹在%USERPROFILE%, Android文件夹在%LOCALAPPDATA%。
  • 卸载Java。
  • 下载最新的Java JDK:
    https://www.oracle.com/technetwork/java/javase/downloads/jdk13-downloads-5672538.html

    ,设置PATH环境变量:
    https://docs.oracle.com/en/java/javase/11/install/installation-jdk-microsoft-windows-platforms.html guid - 96 eb3876 - 8 c7a - 4 - 25 - 9 - f3a a2983fec016a李< / >
  • 我使用具有管理员权限的拉丁字符创建了新的Windows 10本地用户。
  • 切换到新用户并安装Android Studio。
  • 当安装向导显示时,我选择了自定义选项,并选中了要安装的Android模拟器。我把所有的位置文件夹设置为默认。
< p > < br >

.

.

ANDROID_SDK_HOME是指向根目录的指针。该文件默认创建在“C:\Users\name\. android”目录下。android”,而不是你的SDK文件夹的根目录。然后: —将ANDROID_SDK_HOME分配到SDK根文件夹将无效。 -如果你的路”。“android”文件有非ascii字符,它将无法工作。 - AVD文件夹必须在您当前的”。android”文件。< / p >

所以答案是:

  • 改变你的SDK文件夹,如果你需要,就像前面的答案(在Android Studio的项目中)。
  • 关闭Android Studio。
  • 控制面板>系统>高级系统设置>环境变量。
  • 添加一个新的User变量: 变量名称:ANDROID_SDK_HOME 变量值:C:\src(或任何非ascii字符或S.O.特权没有问题的文件夹) 您将输入的路径不能是android sdk的根文件夹!!李< / >
  • 打开Android Studio。确保文件夹名为“。在你的新位置创建了Android。
  • 删除创建的Android虚拟设备(AVD)。
  • 关闭并打开Android Studio。
  • 创建一个新的AVD,看看奇迹发生了。

欢呼。

在Mac OS X上,我也遇到了同样的问题。我无法从Visual Studio中启动Xamarin应用程序,但Android Studio中的原生Java Android项目在虚拟设备中可以运行。

我所做的是:

  1. 取消设置ANDROID_HOMEANDROID_SDK_ROOT环境变量。
unset ANDROID_HOME
unset ANDROID_SDK_ROOT
  1. 移除已经崩溃的虚拟设备。我是在Visual Studio中完成的。
  2. 创建新的虚拟设备。

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

中国的小伙伴注意!原因是avd目录不能包含中文 上面这些方法我都试过了,还是报错,不知道是不是我的avd目录里有汉字。所以我改变默认的avd目录通过以下步骤,它工作。 1. 创建一个路径不包含非ascii字符的文件夹 2. 复制或剪切默认的avd文件夹$HOME/.android到你刚刚创建的文件夹下面 3.添加PATH ADNDROID_SDK_HOME, Android工作室将在$ADNDROID_SDK_HOME/.android/avd

下面找到avd

终于成功了!: >

看看我的答案: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);
}
}
}

我用的是Windows 10,问题是我电脑中的avd目录中有非ascii字符。

下面是该怎么做:

以管理员身份运行cmd

执行如下命令:

mklink /D C:\\.android C:\\Users\\-yourUsername-\\.android

(这将在非ascii字符的路径和新路径之间创建一个符号链接)

在环境变量中添加值为C:\\.android\avdANDROID_AVD_HOME变量。

修复用户包含非ascii字符的问题

对于获取“__abc0”的人,原因可能是用户中的用户包含非ascii字符。

因此,SDK和。android文件夹和AVD文件夹都需要移动到另一个文件夹中。

修改SDK路径:

打开Android工作室,进入配置,并选择SDK管理器。将当前Android SDK Location更改为例如“C:\Android\ SDK "(或者其他地方,只是不在包含非ascii字符的用户文件夹中)

添加如下系统变量:

ANDROID_SDK_ROOT C:\Android\Sdk
ANDROID_HOME C:\Android\Sdk

更改AVD路径:

要更改AVD文件夹的放置位置(通常放置在"C:\Users\<user name>\.android\avd"中),您需要更改.android的放置位置。首先关闭Android工作室,然后添加系统变量ANDROID_SDK_HOME和你想要.android的新位置的路径,例如在另一个例子中使用的C:\Android_SDK_HOME:

ANDROID_SDK_HOME C:\Android_SDK_HOME

添加后,运行Android工作室。然后再关上。现在应该出现了一个名为.android的文件夹。

你需要做的下一件也是最后一件事是设置ANDROID_AVD_HOME系统变量。在本例中,它将在C:\Android_SDK_HOME\.android\avd

ANDROID_AVD_HOME C:\Android_SDK_HOME\.android\avd

我希望这能解决一些问题。:)

macOS Catalina上也有类似的问题,问题原来是我正在运行的Java版本。默认情况下,当现在安装Java时,它是版本13,这与当前版本的avd不兼容。

此外,我在安装Java 8时遇到了麻烦,所以我使用了Homebrew中提供的Java 8:

brew cask install homebrew/cask-versions/adoptopenjdk8

然后,在我的~/.profile I 将Java版本设置为1.8中:

export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)

现在可以测试avdmanager是否可以运行并检测虚拟设备(之前,这导致了一个错误,说XML不能被解析):

avdmanager list avds

我在mac os上运行模拟器时也有类似的问题。经过大量的斗争,我发现我在.bash_profile中设置了错误的sdk路径。我安装了两次android,它导致了这个问题。我设法修复通过匹配ANDROID_SDK_ROOT路径在.bash_profile与sdk,我在android工作室内使用。

你所需要做的就是为android 11安装所需的模拟器示例平台

sdkmanager --install "platforms;android-30"

在你这样做之后,你的模拟器将开始正常工作。

在Windows 10(没有Android Studio)中,我解决了“PANIC: Broken AVD系统路径”。通过转移。在“C:\Users\Леон"导入SDK文件夹。改变环境

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

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

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

  1. 你有一个环境变量ANDROID_SDK_ROOT指向android sdk的根文件夹。
  2. sdk文件夹中有正确的文件结构。cmdline-toolsemulatorplatform-toolssystem-imagesplatforms应该存在。如果您没有这些文件夹,您应该安装缺少的组件。emulator是模拟器本身。system-images有OS的iso映像在模拟器中运行。platforms拥有为不同api编译应用程序所需的平台包。platform-toolsadb和其他必要的工具。如果没有这些组件,模拟器将无法启动,而emulator0会破坏avd路径。
  3. 确保通过sdkmanager下载的api版本与系统映像和平台相匹配。例如API-30的platforms;android-30system-images;android-30;default;x86_64
  4. 确保你的avd设备位于HOME/.android/avd。如果你有avd设备的自定义位置,你应该再创建一个环境变量ANDROID_AVD_HOME指向/avd/文件夹。

这篇文章有关于所有环境变量的信息,但除了ANDROID_SDK_ROOTANDROID_AVD_HOME,你不需要任何其他信息。

对我来说,问题是非ASCII字符在默认路径到AVD,这在我的情况下是:

C:\Users\ MY_USER.android \ avd

和MY_USER包含非ASCII字符。因此,我不得不移动我的avd到其他位置和设置

ANDROID_AVD_HOME

env变量。