Emulator error: This AVD's configuration is missing a kernel file - 模拟器错误: 这个 AVD 的配置缺少一个内核文件

当我试图在 Eclipse 中运行 Android 模拟器时发现了这个问题。不知道发生了什么。我在网上搜索解决方案,但它似乎是模糊的,我不明白清楚。 我是按照步骤安装的 AVD 根据网站,我不能弄清楚我错过了什么。请按照下面的步骤向我解释一下。

278056 次浏览

“ ARM EABI v7a 系统映像”必须可用。通过 Android SDK 管理器安装: Android SDK manager

另一个提示(参见 给你)-使用

  • Android SDK Tools rev 17或更高版本
  • Android4.0.3(API 级别15)
  • 使用 SDK 转速3和系统映像转速2(或更高版本)

你可以打开 GPU 模拟器来获得更快的模拟器: enter image description here

注意: 根据 you786的注释,如果您之前已经创建了模拟器,那么您需要重新创建它,否则这将不起作用。

选择1
Intel 提供了“ 英特尔硬件加速执行管理器”,这是一个基于 VM 的模拟器,用于执行 X86映像,也由 Android SDK Manager 提供。请参阅有关 Intel 模拟器的教程: HAXM 加速 Android 仿真器。Roman Nurik 在 给你上发表文章称,采用 Android 4.3的英特尔仿真器“速度极快”。

选择2
在上面帖子的评论中,你可以找到一个关于 基因运动的参考资料,它声称是“最快的 Android 应用测试和演示模拟器”。Genymotion 在 VirtualBox 上运行。请参阅他们的网站上的 Google + ,这个 邮寄从西里尔莫蒂埃和这个指南的 Reddit

选择3
在 XDA 论坛我读到关于 MEmu-最强大的安卓电脑模拟器,优于蓝栈。你可以找到模拟器 给你。这带我到..。

选择4
... 这个 XDA-论坛条目: 如何使用快速! BlueStack 作为您的替代 Android 开发模拟器。你可以找到模拟器 给你

您可能得到这个错误的另一个原因是 Eclipse 无法找到正确的文件。

查看 Eclipse 在哪里查找 SDK 文件。您可以在命令行上执行此操作。下面是我创建并命名为“ SonyTablets”的 avd 的命令提示符示例:

c:\Program Files (x86)\Android\android-sdk\tools> emulator @SonyTabletS -verbose

返回的第一行显示了 eclipse 在哪里寻找 SDK 文件,看起来像这样:

emulator: found ANDROID_SDK_ROOT: C:\Program Files (x86)\Android\android-sdk

确保位置正确。

在我的例子中,ANDROID_SDK_ROOT最初被错误地设置为我的主目录。这是因为我盲目地按照索尼平板电脑 SDK 的安装说明,并添加了一个不正确路径的 ANDROID_SDK_ROOT环境变量。

我昨天安装了 Android SDK 管理器和 Android SDK,当我尝试立即运行 Android 模拟器时也出现了这个错误。但是,现在这个错误消失,我认为重新启动您的系统时,SDK 已经安装可以解决这个问题。

在对 SDK/NDK & JDK 进行了一整天的修复/重建/升级之后,我突然想到了一个非常聪明的想法。环境变量需要检查,因为我的 AVD‘ Galaxy S3’丢失的内核文件的修复是将系统图像引用扩展到绝对值。

image.sysdir.1=C:\Android\sdk\system-images\android-19\armeabi-v7a\

C:\....sdk\添加到 'workspace'.android\avd\GalaxyS3.avd\config.ini文件中的 image.sysdir.1=条目解决了这个问题(现在)。

在管理员模式下打开 AVD 管理器 选择 VM 并单击 edit,单击 OK 启动虚拟机。

编者按 : 在管理员模式下,他的意思是右键单击 > 以管理员身份在 Windows 平台上运行。

我将 android SDK 更新为最新版本(API 19)。当我尝试用 phonegap3运行模拟器时,构建是成功的,但它运行了相同的问题。

在 AVD 管理器中有一个存在的设备,然而,它的参数都是未知的。当然,这是因为我卸载了旧的 sdk 版本(API 17) ,它在试图删除设备时返回第二个错误。“设备正在运行”

为了解决这个问题,我去了 AVD 的位置在 ~/。Android/avd/,并手动删除了 device directory.avd 和 device.ini 文件。最后,在设备管理器中,我创建了一个由最新 API 提供的新 AVD。

这使得 phonegap 能够成功地构建和运行模拟器

希望这个能帮上忙

再见

我也有同样的问题。在我的例子中,我已经安装了另一个版本的 sdk 和 Android Studio 提供的版本。把我的 ANDROID _ SDK _ ROOT 环境变量改成原来的值就可以了。

请确保您还正确配置了仿真设备。Android Studio 可能会提供一个显示在仿真设备列表中的应用程序,但是这个应用程序不会与您正在使用的 SDK 版本一起工作。

尝试在 AVD 管理器(Tools-> Android > AVD Manager)中创建一个新的仿真设备,并选择它作为目标。

如果您知道内核文件已经安装在您的计算机上,那么问题就在于如何让 Simulator.exe 找到它。

我的修复是基于用户2789389的帖子。我可以从 AVD 管理器启动 AVD,但不能从命令行启动 AVD。因此,使用 AVD 管理器,我选择了我想运行的 AVD 并点击“详细信息”。它向我显示了 avd 定义文件的路径。同名文件夹中,在此。Avd 文件,我找到了一个 config.ini 文件。在 ini 中,我发现了以下行:

image.sysdir.1=system-images\android-19\default\armeabi-v7a\

我查看了文件夹 C: Users XXXX android-sdks system-images android-19,发现 image.sysdir.1路径无效。我不得不删除“默认”子文件夹,因此将其更改为以下内容:

image.sysdir.1=system-images\android-19\armeabi-v7a\

我保存了 ini,并再次尝试启动 AVD。这修复了问题!

我尝试了 ChroLipp 的建议,但问题不在这里,因为映像已经安装好了。我所做的就是跑:

android avd

手动启动模拟器。然后我停止模拟器,并在

cca emulate android

应用程序开始工作,没有“丢失一个内核文件”错误。

下面是 ChroLipp 在 Ubuntu 14.04中使用 Android Studio 1.2.2得到的答案:

  • 从 Android SDK 管理器安装“ ARM EABI v7a System Image”软件包。
  • 删除不起作用的虚拟设备。
  • 添加一个应用二进制接口(ABI)为 armeabi-v7a 的新设备。
  • 启动新设备。

这对我很有用。如果系统对你不起作用,试着重新启动它。

只是想分享一下我在这个问题上的经验。这里的每一个答案都不符合我的情况。使用 Android API 22的系统映像会导致这个错误,奇怪的是所有的环境变量都指向正确的目录。这说不通啊。

@ BuvinJ 的回答对这个问题有所启发。我确实查看了他的回答中描述的路径,是的,当我查看用户目录(在 Windows 上)时,我的系统映像副本位于默认子文件夹下。

奇怪的是,在 ANDROID _ SDK _ ROOT 中还有一个 ANDROID-sdk 文件夹,所以我想也许 Eclipse 正在那里寻找。通过对子文件夹的研究,我发现目录是这样的:

android-sdk-windows\system-images\android-22\google_apis\armeabi-v7a

这个目录驻留在 ANDROID _ SDK _ ROOT 上,还有一个驻留在用户目录 user/XXXX/ANDROID-sdk/上。

Eclipse 正期待着它的到来:

android-sdk-windows\system-images\android-22\default\armeabi-v7a

只是改变了目录本身,现在它可以工作了。

我只是添加了 Environment 变量 ANDROID _ SDK _ ROOT 就解决了这个问题,在我的例子中,这个变量位于 C: Users fera AppData Local ANDROID sdk

我的故事是这样的。在 AVD 管理器的“动作”下面,我查看了 AVD 不工作的详细信息。向下滚动,我发现了一行字:

image.sysdir.1: add-ons\addon-google_apis-google-16\images\armeabi-v7a\

然后,我浏览到以下文件:

C:\Users\XXXX\AppData\Local\Android\sdk\add-ons\addon-google_apis-google-16\images\armeabi-v7a

我发现没有内核文件,不过,我找到了一个内核文件:

C:\Users\XXXX\AppData\Local\Android\sdk\system-images\android-16\default\armeabi-v7a

所以我把它复制下来,粘贴回:

C:\Users\XXXX\AppData\Local\Android\sdk\add-ons\addon-google_apis-google-16\images\armeabi-v7a

然后 AVD 起作用了。

我的故事,Eclipse 需要一个名为“ kernel-ranchu”的文件在系统映像文件夹(/path/to/android-sdk-macosx/system-images/android-25/google_apis/arm64-v8a)中。

模拟器: 错误: 这个 AVD 的配置缺少一个内核文件! 请确保文件“ kernel-ranchu”与您的 系统图像系统图像系统图像。

模拟器: ERROR: ANDROID _ SDK _ ROOT 未定义

在那个系统映像文件夹中有一个名为“ kernel-qemu”的文件。我只是把它重命名为“ kernel-ranchu”,它就工作了..。

在我自己的案例中,我有多个错误,其中大部分是关于错误配置的 ANDROID_SDK_ROOT,在一天结束时,一件事似乎修复了整个事情。

遵循以下程序:

在 AVD 上创建一个新的仿真器设备之后,进入“操作”菜单,单击向下的箭头,如下所示。

enter image description here

点击 光盘节目

编辑 Config.ini

image.sysdir.1

它应该有这样一个值: image.sysdir.1=system-images\android-28\google_apis_playstore\x86\

你自己的价值可能不同

现在,修复 Android SDK 的路径以创建一个完整的路径。

image.sysdir.1=**C:\androidsdk\**system-images\android-28\google_apis_playstore\x86\

如果你注意到,上面显示的 android sdk 路径不同于普通的默认 android sdk,我不得不把它移动到 C:/androidsdk以避免 NDK 问题,因为我的电脑上的主用户主页有 NDK 可能不支持的空白。

注意: 将 SDK 目录从默认目录移开通常是 AVD 模拟器提供的这些错误的原因,尤其是关于中断和配置错误的路径。我上面提供的修复是一个快速修复,您可能必须这样做,每次您创建一个新的设备 AVD 模拟器。

这个修复程序在使用 Cordova 处理 CMD 时也应该起作用。

请看我对 Android Studio 环境Mac 和“ PANIC: ‘ arm’CPU 缺少模拟器引擎程序。”的回答。

要解决这个问题,您需要手动指定 -kernel路径。

$ ~/Library/Android/sdk/emulator/emulator  @Galaxy_Nexus_Jelly_Bean_API_16 -kernel ~/Library/Android/sdk/system-images/android-16/default/armeabi-v7a/kernel-qemu

请记住将模拟器名称 Galaxy_Nexus_Jelly_Bean_API_16更改为您自己的模拟器名称。

下面的命令检查命令行中可用的模拟器。

$ ~/Library/Android/sdk/emulator/emulator -list-avds

并且,确保你的 模拟器路径是正确的,也就是位于 ~/Library/Android/sdk/emulator/的那个。

为我更新的 SDK 工具修复了错误。

Screenshot of the errors and update progress

我通过将 Android SDK Manager 中的 SDK 工具和平台工具更新到最新版本来解决这个问题。

在窗口的命令提示符中更新以下命令:

  1. android update sdk --no-ui --all
    它更新您的 SDK 包,它需要3分钟。
  2. android update sdk --no-ui --filter platform-tools,tools
    它更新平台工具及其包。
  3. android update sdk --no-ui --all --filter extra-android-m2repository
    那些与 maven 项目一起工作的人更新了这个,以支持最新的支持设计库,其中将包括额外的 maven android maven Repository。
  1. 在命令提示符中,它要求您输入 Y/N,单击 Y,然后继续安装。
  2. 它更新所有 Kernel-qemu 文件和 qt5.dll 命令。

如果在尝试为 Android 11或 Android 10 + (API 30)创建模拟器时出现此错误,请确保将模拟器更新为最新的。您可以在 Tools-> SDK Manager-> SDK Tools 中完成此操作

enter image description here

有个文件叫 Kernel-ranchu ,我把它重命名为 Kernel-qemu

这解决了我的问题。 谢谢你。