当我尝试在Eclipse中运行Android模拟器时,发现了此问题。无法弄清楚发生了什么。我在网上搜索了解决方案,但它看起来很模糊,我不明白。 我按照网站安装AVD的步骤,我无法弄清楚我错过了什么。请按照以下步骤向我解释。
答案 0 :(得分:251)
必须提供“ARM EABI v7a系统映像”。通过Android SDK管理器安装它:
另一个提示(见here) - 带
您可以打开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+,此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)
答案 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上创建新的仿真器设备后,转到“操作”菜单,然后单击向下箭头,如下所示。
点击在磁盘上显示
编辑 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)