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

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

【问题讨论】:

标签: android eclipse android-emulator avd


【解决方案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 的 postreddit 上的指南。

备选方案 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 的命令提示符中更新以下命令:

                      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 命令。这样模拟器就可以正常工作了。

                      【讨论】:

                        【解决方案21】:

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

                        【讨论】:

                          【解决方案22】:

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

                          【讨论】:

                            猜你喜欢
                            • 2016-03-10
                            • 1970-01-01
                            • 1970-01-01
                            • 1970-01-01
                            • 2013-03-10
                            • 1970-01-01
                            • 2019-06-20
                            • 2023-03-28
                            • 2020-04-16
                            相关资源
                            最近更新 更多