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

Posted

技术标签:

【中文标题】模拟器错误:此 AVD 的配置缺少内核文件【英文标题】:Emulator error: This AVD's configuration is missing a kernel file 【发布时间】:2012-03-31 12:58:13 【问题描述】:

当我尝试在 Eclipse 中运行 android 模拟器时发现了这个问题。无法弄清楚发生了什么。我在网上搜索了解决方案,但似乎很模糊,我也不是很清楚。 我正在按照站点安装 AVD 的步骤进行操作,但我无法弄清楚我错过了什么。请按照以下步骤向我解释。

【问题讨论】:

同样的问题:***.com/questions/8190820/scala-android-newbie - 创建一个新的 AVD 在mac上还是无法启动;在 AVD 上使用修复为我工作***.com/a/15971119/664220 安装 ARM 映像后重新启动 Eclipse,然后创建新的 AVD 对我有用。 这个链接可能有帮助:developer.android.com/tools/help/avd-manager.html 【参考方案1】:

“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 管理器提供服务。在此处查看英特尔仿真器的教程:HAXM Speeds Up the Android Emulator。 Roman Nurik 在here 发帖称,搭载 Android 4.3 的英特尔模拟器“速度极快”。

备选方案 2 在上面帖子的 cmets 中,您可以找到对 Genymotion 的引用,它声称是“用于应用测试和演示的最快 Android 模拟器”。 Genymotion 在 VirtualBox 上运行。另请参阅他们的网站 Google+、来自 Cyril Mottier 的 post 和 reddit 上的指南。

备选方案 3 在 XDA-Forums 我读到了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。

【讨论】:

不幸的是,当 GPU 仿真打开时,某些 ATI 卡崩溃 - 期待更新的仿真器。 我发现我必须删除模拟器并在安装后重新创建它才能解决这个问题。 @you786 是的,重新创建它很重要 我已经做了所有可能的方法,但在启动模拟器时它仍然存在 @you786 你是怎么删除模拟器的?【参考方案2】:

出现此错误的另一个原因是 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 最初被错误地设置为我的主目录。这是因为我设置它的方式是盲目地按照 Sony Tablet S SDK 安装说明并添加路径不正确的 ANDROID_SDK_ROOT 环境变量。

【讨论】:

就我而言,当我从 Android\android-sdk 文件夹运行模拟器时,Android\android-studio\sdk 已被接管 ANDROID_SDK_ROOT 位置。一旦它正确指向 Android\android-sdk,它就可以工作了。 这是给我的。我的构建环境使用了一个我无法轻松更新的 ANDROID_SDK_ROOT。解决方法是启动一个干净的命令提示符并将 ANDROID_SDK_ROOT 设置为正确的并从那里启动 sdk 管理器。 仔细检查您是否无意中安装了 SDK 的两个副本。如果您像我一样,您在一个副本中安装“ARM EABI v7a 系统映像”,但 AVD 试图在另一个副本中找到它。我删除了我的 SDK 副本之一,然后我的模拟器立即启动。 就我而言,我的 SDK 文件夹指向正确的目录。【参考方案3】:

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

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

模拟器:错误:ANDROID_SDK_ROOT 未定义

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

【讨论】:

我的情况正好相反【参考方案4】:

我遇到了同样的问题。就我而言,事实证明我已经安装了另一个版本的 sdk 以及 Android Studio 提供的版本。将我的 ANDROID_SDK_ROOT 环境变量更改为原始值为我修复了它。

【讨论】:

重要的是要注意,对于之前在 Android Studio 之前安装 SDK 的情况,这与最佳答案同样有效。错误是 Android Studio 应该注意到 ANDROID_SDK_ROOT 已经设置为备用位置并在安装过程中警告用户。 核心是正确的。我今天从 Eclipse 切换到了 Android Studio,这就是解决我的问题的原因。【参考方案5】:

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

【讨论】:

谢谢,解决了!我认为这一定是一个错误或某事,因为这是一种非常奇怪的行为【参考方案6】:

在管理员模式下打开 AVD Manager 选择VM并单击编辑,单击确定 启动虚拟机。

编者注:管理员模式是指右键单击 > 在 windows 平台上以管理员身份运行。

【讨论】:

“管理员模式”是什么/在哪里? 找不到虚拟机,适用于 Mac OS【参考方案7】:

如果你知道你的机器上安装了内核文件,那么问题就是让 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。这解决了问题!

【讨论】:

这并没有解决它。在我的情况下,我在默认子文件夹中有系统图像。 你不必投票给我,因为你有不同的问题!这不会让我的回答错。 您是否也对这里的所有其他帖子投了反对票,因为他们没有解决您的问题? 这解决了我的问题,我在 Mac 中运行并且路径指向 image.sysdir.1=add-ons/addon-google_apis-google-16/images/armeabi-v7a ,更改为 system-images/android-16/default/armeabi-v7a 解决了问题【参考方案8】:

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

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

【讨论】:

尝试走这条路让我知道实际上并未安装 HAXM,尽管它显示它已安装。系统提示我安装 Intel HAXM。【参考方案9】:

请参阅我对 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/ 的路径。

【讨论】:

【参考方案10】:

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

【讨论】:

【参考方案11】:

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

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

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

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

希望对你有帮助

美好的一天

【讨论】:

【参考方案12】:

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

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

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

【讨论】:

【参考方案13】:

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

【讨论】:

这就是我需要做的!谢谢,好心的先生!【参考方案14】:

在对 SDK/NDK 和 JDK 进行了一整天的修复/重建/升级之后,我突然想到了一个聪明的想法。需要检查环境变量,因为我的 AVD 'GalaxyS3' 缺少内核文件的修复是将系统映像引用扩展为绝对。

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

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

【讨论】:

【参考方案15】:

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

android avd

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

cca emulate android

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

【讨论】:

【参考方案16】:

我解决了这个问题,只是添加了环境变量 ANDROID_SDK_ROOT,在我的例子中,它位于 C:\Users\fera\AppData\Local\Android\sdk

【讨论】:

【参考方案17】:

在我自己的情况下,我遇到了多个错误,其中大部分是关于错误配置的ANDROID_SDK_ROOT,最终,一件事似乎解决了整个问题。

遵循以下流程:

在 AVD 上创建一个新的模拟器设备后,进入 Actions 菜单并单击向下的箭头,如下所示。

点击在磁盘上显示

编辑 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 上的主要 USER HOME 有 NDK 可能不支持的空格.

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

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

【讨论】:

【参考方案18】:

只是想分享我在这个问题上的经验。在这里咨询每个答案,它都不符合我的情况。拥有 Android API 22 的系统映像会导致此错误,奇怪的是所有环境变量都指向正确的目录。这没有意义。

@BuvinJ 的回答为这个问题提供了一些启示。我确实检查了他回答中描述的路径,是的,当我查看用户目录(在 Windows 上)时,我的系统映像副本位于子文件夹 default 下。

奇怪的是,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】:

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

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

【讨论】:

【参考方案20】:

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

    android update sdk --no-ui --all 它会更新您的 SDK 包,需要 3 分钟。 android update sdk --no-ui --filter platform-tools,tools 它会更新平台工具及其软件包。 android update sdk --no-ui --all --filter extra-android-m2repository 那些正在使用 maven 项目的人会更新它以支持最新的支持设计库,其中将包括额外的 maven android maven Repository。
    在命令提示符中,它会询问您输入 Y/N。点击 Y 然后继续安装。 它会更新所有 Kernel-qemu 文件和 qt5.dll 命令。这样模拟器就可以正常工作了。

【讨论】:

【参考方案21】:

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

【讨论】:

【参考方案22】:

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

【讨论】:

以上是关于模拟器错误:此 AVD 的配置缺少内核文件的主要内容,如果未能解决你的问题,请参考以下文章

bochs调试linux内核学习4 - bochs配置文件的$BXSHARE变量bochs的System BIOS must end at 0xfffff错误运行内核0.00版本

模拟器在内核映像文件中找不到“Linux 版本”字符串

编译linux内核2.4.0时内联汇编错误

在 AVD 模拟器中如何查看 sdcard 文件夹并将 APK 安装到 AVD?

Android Studio 出错:无法在模拟器中启动 AVD

8.操作系统实战——环境配置,用文件模拟硬盘(生成文件,格式化,安装GRUB,转换虚拟硬盘格式)