模拟器错误:此AVD的配置缺少内核文件

问题描述 投票:173回答:19

当我尝试在Eclipse中运行Android模拟器时,发现了这个问题。无法弄清楚发生了什么。我在网上搜索了解决方案,但它看起来很模糊,我不明白。我按照网站安装AVD的步骤,我无法弄清楚我错过了什么。请按照以下步骤向我解释。

android eclipse android-emulator avd
19个回答
252
投票

必须提供“ARM EABI v7a系统映像”。通过Android SDK管理器安装它:

另一个提示(见here) - 与

  • Android SDK工具rev 17或更高版本
  • Android 4.0.3(API等级15)
  • 使用SDK rev 3和System Image rev 2(或更高版本)

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

注意:根据you786注释,如果您以前创建过模拟器,则需要重新创建它,否则这将无效。

备选方案1 英特尔提供“Intel hardware accelerated execution manager”,这是一个基于VM的仿真器,用于执行X86映像,也可以由Android SDK Manager提供服务。请参阅此处的英特尔模拟器教程:HAXM Speeds Up the Android Emulator。 Roman Nurik发布了here,认为Android 4.3的英特尔模拟器“快速发展”。

备选方案2 在上面的帖子的评论中,您可以找到对Genymotion的引用,该引用声称是“用于应用程序测试和演示的最快的Android模拟器”。 Genymotion在VirtualBox上运行。另见他们在Google+上的网站,来自Cyril Mottier的post以及reddit的这本指南。

备选方案3 在XDA论坛中,我读到了关于MEmu - Most Powerful Android Emulator for PC, Better Than Bluestacks的内容。你可以找到模拟器here。这让我...

备选方案4 ...这个XDA论坛条目:How to use THE FAST! BlueStack as your alternate Android development emulator。你可以找到模拟器here


2
投票

经过一整天的SDK / NDK和JDK修复/重建/升级后,我发现了一个奇怪的智能思想。需要检查环境变量,因为我的AVD'GalaxyS3'缺少内核文件的修复是将系统映像引用扩展为绝对。

image.sysdir.1 = C:\的Android \ SDK \系统图像\机器人-19 \ armeabi-V7A \

将“C:.... sdk \”添加到'workspace'.android \ avd \ GalaxyS3.avd \ config.ini文件中的'image.sysdir.1 ='条目解决了问题(暂时)。


2
投票

我将我的android SDK更新到最新版本(API 19)。当我尝试使用phonegap 3运行模拟器时,构建成功但运行相同的问题。

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

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

这允许phonegap成功构建和运行模拟器

我希望这有帮助

美好的一天


2
投票

按照ChrLipp在Ubuntu 14.04中使用Android Studio 1.2.2接受的答案:

  • 从Android SDK管理器安装“ARM EABI v7a System Image”软件包。
  • 删除非功能虚拟设备。
  • 添加带有应用程序二进制接口(ABI)的新设备作为armeabi-v7a。
  • 启动到新设备。

这对我有用。尝试重新启动系统,如果它不适合您。


1
投票

我尝试了ChrLipp的建议,但这不是问题,因为图像已经安装好了。我做的是运行:

android avd

手动启动模拟器。然后我停止了模拟器,并在上面形成了这一点

cca emulate android

应用程序开始工作,没有“遗漏内核文件”错误。


1
投票

我修复了这个问题只是添加环境变量ANDROID_SDK_ROOT,在我的情况下,它位于C:\ Users \ fera \ AppData \ Local \ Android \ sdk


1
投票

请参阅我对Android Studio环境Mac and “PANIC: Missing emulator engine program for '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/的路径。


0
投票

只想分享我在这个问题上的经验。在这里咨询每个答案,它与我的情况不符。拥有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

刚刚更改了目录,现在可以正常工作了。


0
投票

在我自己的情况下,我有多个错误,其中大多数错误配置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 **系统图像\机器人-28 \ google_apis_playstore \ 86 \

如果你注意到,上面显示的android sdk路径与普通的默认android sdk不同,我不得不将它移动到C:/ androidsdk以避免NDK问题,因为我的PC上的主要USER HOME有NDK可能不支持的空格。

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

使用cordova处理CMD时,此修复程序也应该有效。


-1
投票

对我来说,更新SDK工具修复了错误。

Screenshot of the errors and update progress


-1
投票

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


22
投票

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

查看Eclipse正在寻找SDK文件的位置。您可以在命令行上执行此操作。下面是我创建并命名为'SonyTabletS'的avd的Windows命令提示符的示例:

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最初设置错误到我的主目录。这是因为我通过盲目地遵循索尼Tablet S SDK安装说明并添加带有错误路径的ANDROID_SDK_ROOT环境变量来设置它。


15
投票

我有同样的问题。在我的情况下,我发现我已经安装了另一个版本的sdk以及Android Studio提供的版本。将我的ANDROID_SDK_ROOT环境变量更改为原始值,为我修复了它。


11
投票

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

模拟器:错误:此AVD的配置缺少内核文件!请确保文件“kernel-ranchu”与系统映像位于同一位置。

模拟器:错误:ANDROID_SDK_ROOT未定义

在该系统映像文件夹中有一个名为“kernel-qemu”的文件。我刚刚将其重命名为“kernel-ranchu”并且它有效...


9
投票

这是我的故事。在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工作了。


7
投票

以管理员模式打开AVD Manager选择VM并单击编辑,然后单击确定启动VM。

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


4
投票

如果你知道你的机器上安装了内核文件,那么问题是让emulator.exe找到它。

我的修复是基于用户2789389的帖子。我可以从AVD Manager启动AVD,但不能从命令行启动。因此,使用AVD Manager,我选择了我想要运行的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。这解决了问题!


3
投票

确保您还正确配置了模拟设备。 Android Studio可能会附带一个显示在模拟设备列表中但未设置为与您使用的SDK版本一起使用的设备。

尝试在AVD Manager(工具 - > Android> AVD管理器)中创建新的模拟设备,并选择该设备作为目标。


2
投票

我今天安装了Android SDK管理器和Android SDK,当我尝试立即运行Android模拟器时,我也遇到了这个错误。但是,现在这个错误消失了,我认为安装SDK后重新启动系统可能会解决这个问题。

© www.soinside.com 2019 - 2024. All rights reserved.