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


183

当我尝试在Eclipse中运行Android仿真器时发现了此问题。无法弄清楚发生了什么。我在网上搜索了解决方案,但似乎含糊不清,我不清楚。我按照步骤根据站点安装AVD,但无法弄清错过的地方。请按照以下步骤向我解释。



1
在Mac上仍然无法启动;对我有用的
Ronnie

在安装ARM映像之后重新启动Eclipse,然后创建一个新的AVD对我来说很有用。
西蒙

可能是该链接可能有所帮助:developer.android.com/tools/help/avd-manager.html
Abhijeet 2015年

Answers:


254

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

另一个提示(请参阅此处)-与

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

您可以打开GPU仿真以获得更快的仿真器: 在此处输入图片说明

注意:根据you786的注释,如果您以前创建了模拟器,则需要重新创建它,否则将无法正常工作。

备选方案1
英特尔提供了“ 英特尔硬件加速执行管理器 ”,它是用于执行X86映像的基于VM的仿真器,并且还由Android SDK Manager提供。在此处查看有关英特尔仿真器的教程:HAXM加快了Android仿真器的速度。罗曼·纽里克(Roman Nurik)在这里发表文章说,搭载Android 4.3的英特尔仿真器正在“快速发展”。

备选方案2
在上述文章的评论中,您可以找到对Genymotion的引用,该引用被称为“用于应用程序测试和演示的最快的Android模拟器”。Genymotion在VirtualBox上运行。另请参见他们在Google+上的网站,Cyril Mottier的这篇文章reddit的本指南。

备选方案3
在XDA论坛中,我读到了关于MEmu的信息-最强大的Android PC模拟器,比Bluestacks更好。您可以在此处找到仿真器。这把我带到...

备选方案4
...此XDA论坛条目:如何使用THE FAST!BlueStack作为您的备用Android开发模拟器。您可以在此处找到仿真器。


1
不幸的是,当GPU仿真打开时,某些ATI卡会崩溃-期待更新的仿真器。
ChrLipp 2012年

23
我发现我必须删除模拟器并在安装后重新创建它才能解决此问题。
you786 2013年

3
@ you786是的,重新创建它很重要
Bobs

1
我已经做了所有可能的方法,但是在启动模拟器时它仍然存在
VISHNU GARG

请参阅下面的答案。
马克·罗奇金德

22

出现此错误的另一个原因是Eclipse找不到正确的文件。

查看Eclipse在哪里寻找您的SDK文件。您可以在命令行上执行此操作。以下是Windows命令提示符下我创建并命名为'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最初是错误地设置到我的主目录。这是因为我通过盲目遵循Sony Tablet S SDK安装说明并ANDROID_SDK_ROOT使用错误的路径添加环境变量来进行设置。


就我而言,当我从Android \ android-sdk文件夹运行模拟器时,Android \ android-studio \ sdk已接管ANDROID_SDK_ROOT位置。一旦正确指向Android \ android-sdk,它就可以工作。
noel aye

这是给我的。我的构建环境使用了一个我不容易更新的ANDROID_SDK_ROOT。解决方法是启动一个干净的命令提示符,并将ANDROID_SDK_ROOT设置为正确的提示符,然后从此处启动sdk管理器。
Doug Coburn 2014年

仔细检查您是否意外地安装了两个SDK副本。如果您像我一样,则要在一个副本中安装“ ARM EABI v7a系统映像”,但AVD试图在另一个副本中找到它。我删除了我的SDK副本之一,然后我的模拟器立即启动。
sffc 2015年

就我而言,我的SDK文件夹指向正确的目录。
霓虹灯Warge

16

我的故事是,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
就我而言,情况
恰恰相反

15

我有同样的问题。就我而言,事实证明我在Android Studio提供的版本旁边安装了另一版本的sdk。将我的ANDROID_SDK_ROOT环境变量更改为原始值已为我修复。


1
重要的是要注意,在先前在Android Studio之前安装SDK的情况下,这与顶部回答同等有效。该错误是Android Studio应该注意到ANDROID_SDK_ROOT已设置为备用位置,并在安装过程中向用户发出警告。
核心

核心是正确的。我今天从Eclipse切换到Android Studio,这就是解决我这个问题的原因。
Pikamander2'2

11

这是我的故事。在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随后开始工作。


谢谢,这解决了!我认为这一定是错误或某事,因为这是一个非常奇怪的行为
Hugo

7

在管理员模式下打开AVD Manager。选择VM,然后单击Edit,单击OK,启动VM。

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


“管理员模式”在什么位置?
ericpeters0n 2014年

找不到适用于Mac OS的VM
Frank Fang

4

如果您知道计算机上已安装了内核文件,则问题是无法通过emulator.exe进行查找。

我的修复基于user2789389的帖子。我可以从AVD管理器启动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。那解决了问题!


这没有解决。就我而言,我的系统图像位于默认子文件夹中。
霓虹灯Warge

您不必投反对票,因为您有其他问题!这并没有使我的答案错误。
2015年

您是否也对其他所有帖子都投了反对票,因为他们没有解决您的问题?
2015年

这为我解决了问题,我在Mac上运行,并且路径指向image.sysdir.1 = add-ons / addon-google_apis-google-16 / images / armeabi-v7a,更改为system-images / android -16 / default / armeabi-v7a解决了该问题-Felipe
6

3

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

尝试在AVD Manager(工具-> Android> AVD Manager)中创建新的模拟设备,然后将其选择为目标设备。


试图沿着这条路走,让我知道实际上并没有安装HAXM,即使它表明确实已安装。系统提示我安装英特尔HAXM。
罗德莱恩'19

2

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


2

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

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

将“ C:.... sdk \”添加到“工作区” .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系统映像”软件包。
  • 删除无功能的虚拟设备。
  • 添加一个具有应用程序二进制接口(ABI)的新设备作为armeabi-v7a。
  • 引导到新设备。

这对我有用。如果系统不适合您,请尝试重新引导系统。


2

请参阅我对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/


1

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

android avd

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

cca emulate android

应用程序开始工作,而没有出现“缺少内核文件”错误。


1

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


1

就我自己而言,我有多个错误,其中大多数是关于错误配置的ANDROID_SDK_ROOT的,最终,一件事似乎可以解决整个问题。

请遵循以下过程:

在AVD上创建新的仿真器设备后,转到“操作”菜单,然后单击向下箭头,如下所示。

在此处输入图片说明

单击在磁盘显示

编辑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上创建新设备时都可能需要这样做。

当使用cordova进行CMD时,此修复程序也应该起作用。


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

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

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

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



By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.