当前位置: 首页 > 知识库问答 >
问题:

恐慌:AVD系统路径断裂。检查您的ANDROID_SDK_ROOT值

张璞
2023-03-14

在terminal中键入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系统路径?

共有1个答案

傅茂实
2023-03-14

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

下面我将描述我所知道的所有可能出现的问题,并将给你几种解决方法

当然,我假设您已经创建了任何AVD,并且它位于c:\users\ \.android\AVD (Windows)或~/.android/AVD(Linux/macOS)中。

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

还要检查 /.android/avd/ .ini 中的路径

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可能有错误的文件树。请执行以下操作:

如果一切都设置正确,那么当关于android_sdk_root的这些错误发生时,就一定会消失。如果不是,那么现在您可以尝试设置android_sdk_root变量。

您可能面临的下一个问题是,仿真程序开始启动,但立即挂起或退出。这可能意味着您没有安装所有所需的包。

另一个可能的错误是:

因此,要成功启动任何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,或者工具\bin\sdkmanager.bat(Linux/macOS可能有sh文件)。

要列出所有可用的包,请使用SDKManager--listSDKManager--list--verbose

要安装包,请使用SDKManager ...

另外,我建议在您的系统上手动安装HAXM。

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

qemu-system-i386.exe:-drive if=none,overlap-check=none,cache=unsafe,index=0,id=system,file=C:\users\ \.android\avd\

avd\system.img.qcow2,只读:无法打开备份文件:无法打开“ \system-images\android-22\google_apis\x86\system.img ”:参数无效

有2种方法可以修复:

>

  • 如果不关心AVD包含的数据,只需从AVD目录中删除所有QCOW2文件(例如,从 /.android/AVD/ )。在这种情况下,你会得到一个干净的Android版本,就像在硬重置之后一样。

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

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

    现在您可能就可以成功地启动您的Android虚拟设备了。我希望如此:)

  •  类似资料: