我刚刚安装了Android Studio并试图运行它。当我尝试运行我的应用程序时,出现了以下错误消息。
emulator: ERROR: This AVD's configuration is missing a kernel file!!
emulator: ERROR: ANDROID_SDK_ROOT is undefined
有人知道如何解决这个问题吗????
我刚刚安装了Android Studio并试图运行它。当我尝试运行我的应用程序时,出现了以下错误消息。
emulator: ERROR: This AVD's configuration is missing a kernel file!!
emulator: ERROR: ANDROID_SDK_ROOT is undefined
有人知道如何解决这个问题吗????
有可能您确实没有系统映像。请仔细检查$ANDROID_HOME/system-images/android-<YOUR DESIRED API>/armeabi-v7a
是否存在且不为空。如果确实缺少 - 请使用SDK管理器进行安装/重新安装。
$ANDROID_HOME/system-images/android-<YOUR DESIRED API>/armeabi-v7a
,2:如何使用SDK管理器重新安装虚拟设备。 - Musa Haidari进入“工具”、“Android”、“AVD管理器”
点击最右侧“操作”栏下的箭头(在错误消息旁边)
选择“编辑”
保留默认选项(对我来说是MNC x86 Android M)
点击“下一步”
点击“完成”
保存您的AVD,现在最后一列中的错误已经消失。模拟器现在可以正常运行。
刚刚解决了这个问题。希望能帮助其他人。(针对Android Studio v2版本的问题)。 这个问题是针对arm模拟器的。在这个示例中,我使用的是armeabi-v7a API 16。
修复步骤共分三步:
第一步: 打开SDK管理器,确保已经安装了ARM EABI v7a系统映像。
第二步: 将sdk的路径添加到系统变量中,这是显而易见的情况。
右键单击桌面上的"This PC"图标,然后打开
属性->高级系统设置->环境变量...
然后将sdk路径作为新的系统变量添加到系统变量部分,变量名为ANDROID_SDK_ROOT
。
第三步:
重启Android Studio以使更改生效。在纠正了未定义的ANDROID_SDK_ROOT
问题之后,虚拟机仍然无法找到内核文件,尽管它可以看到sdk管理器将其安装到
path-to-sdk\sdk\system-images\android-16\default\armeabi-v7a\kernel-qemu
。
原因是sdk管理器安装内核文件的位置与虚拟机正在查找的位置混淆了。
如果打开您的config.ini文件(Android Studio->AVD管理器->"显示在磁盘上")以查看您的模拟器配置,您将看到以下行:
image.sysdir.1=add-ons\addon-google_apis-google-16\images\armeabi-v7a\
(即\path-to-sdk\add-ons\addon-....)
我没有更改config.ini文件中的此值,而是复制了
path-to-sdk\sdk\system-images\android-16\default\armeabi-v7a\kernel-qemu
(从sdk管理器安装的文件夹中复制的内核文件)
到
\path-to-sdk\add-ons\addon-google_apis-google-16\images\armeabi-v7a\
这就是缺失的内核文件。你可以运行模拟器。(需要关闭Android Studio并重新打开) 由于其速度比x86慢10倍,所以请给模拟器一些时间。(我的启动大约需要5分钟)
image.sysdir.1=system-images\android-16\default\armeabi-v7a
。 - yvesmanceraimage.sysdir.1
更新为system-images\android-15\google_apis\armeabi-v7a\
。 - twig我通过运行"C:\Program Files\Android\android-sdk\AVD Manager.exe"并修复我的损坏设备来解决了问题。
你好,我遇到了和你一样的问题。在谷歌搜索结果中第三个链接带我来到这段代码,它引发了错误:
if (kernelFile == NULL) {
kernelFile = avdInfo_getKernelPath(avd);
if (kernelFile == NULL) {
derror( "This AVD's configuration is missing a kernel file!!" );
const char* sdkRootDir = getenv("ANDROID_SDK_ROOT");
if (sdkRootDir) {
derror( "ANDROID_SDK_ROOT is defined (%s) but cannot find kernel file in "
"%s" PATH_SEP "system-images" PATH_SEP
" sub directories", sdkRootDir, sdkRootDir);
} else {
derror( "ANDROID_SDK_ROOT is undefined");
}
exit(2);
有人写道:
"/* 如果内核映像名称以“-armv7”结尾,则自动更改CPU类型。这是一种简易的配置管理方法,但应该可以让我们通过使用dex preopt通过构建ARMv7系统映像"
所以我回去下载了我所需API级别的x86英特尔Atom版本,并成功启动了模拟器而没有报错。希望对你也有帮助.....
<AndroidSDK>\AVD Manager.exe
创建相同的映像。<AndroidSDK>\AVD Manager.exe
)创建这些旧设备映像时,我成功了。〜/ Library / Android / sdk / tools / android avd
。 - neuralmer然后我打开了Windows CMD shell,执行了以下操作:
echo %ANDROID_HOME%
但是路径与第一步的ANDROID STUDIO CONFIGURATION中的路径不同。
解决方法是更改用户环境中的ANDROID_HOME为第一步的路径:image
最后关闭cmd shell,打开另一个cmd shell执行:
echo %ANDROID_HOME%
这对我有用,我使用的是Windows 10和Android Studio 2.3.3。
通常,错误会发生在您为开发的应用程序选择了不适合的AVD模拟器时。例如,如果您正在开发针对可穿戴设备的应用程序,但尝试使用手机模拟器来运行它,则会出现此类错误。