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

时间:2012-03-15 00:56:53

标签: android eclipse android-emulator avd

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

21 个答案:

答案 0 :(得分:251)

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

另一个提示(见here) - 带

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

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

注意:根据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+,此post来自Cyril Mottier,以及本指南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

答案 1 :(得分: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环境变量。

答案 2 :(得分:15)

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

答案 3 :(得分: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”并且有效......

答案 4 :(得分: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工作了。

答案 5 :(得分:7)

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

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

答案 6 :(得分: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。这解决了问题!

答案 7 :(得分:3)

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

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

答案 8 :(得分:2)

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

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

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

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

我希望这会有所帮助

美好的一天

答案 9 :(得分: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 ='条目解决了问题(目前为止) )。

答案 10 :(得分:2)

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

答案 11 :(得分:2)

如果在尝试为 Android 11或Android 10+(API 30)创建模拟器时遇到此错误,请确保将模拟器更新为最新版本。您可以通过工具-> SDK管理器-> SDK工具

enter image description here

答案 12 :(得分:1)

我尝试过ChrLipp建议的内容,但这不是问题所在,因为图像已经安装完毕。我做的是跑:

android avd

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

上形成了这一点
cca emulate android

应用程序开始工作,没有"缺少内核文件"错误。

答案 13 :(得分:1)

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

答案 14 :(得分: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/的路径。

答案 15 :(得分:0)

有一个名为 kernel-ranchu ,我将其重命名为 kernel-qemu

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

答案 16 :(得分:0)

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

i)android update sdk --no-ui --all //它会更新您的SDK包,需要3分钟。 ii)android更新sdk --no-ui --filter平台工具,工具 //它将更新平台工具及其软件包。 iii)android update sdk --no-ui --all --filter extra-android-m2repository // 那些正在使用maven项目的人会对此进行更新,以支持最新的支持设计库,其中包括额外的maven android maven存储库。

1)在命令提示符下,要求您输入Y / N。单击Y,然后继续进行安装。 2)它更新所有Kernel-qemu文件和qt5.dll命令。这样模拟器就可以正常工作而没有任何问题。

答案 17 :(得分: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 ** system-images \ android-28 \ google_apis_playstore \ x86 \

如果您注意到,上面显示的android sdk路径与正常的默认android sdk不同,我不得不将其移动到 C:/ androidsdk 以避免NDK问题,因为我是我的主要用户主用户PC具有NDK可能不支持的空格。

注意:将SDK目录从其默认目录移开通常是造成这些错误的原因,AVD模拟器会给出这些错误,尤其是在路径断开和配置错误时。我上面提供的修复程序是一种快速修复程序,您每次在AVD Emulator上创建新设备时都可能需要这样做。

使用科尔多瓦处理CMD时,此修复程序也应起作用。

答案 18 :(得分: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

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

答案 19 :(得分:-1)

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

答案 20 :(得分:-1)

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

Screenshot of the errors and update progress