无法在Android Studio中运行模拟器


96

我刚完成安装Android Studio并尝试将其用于测试运行。当我尝试运行我的应用程序时,出现以下错误信息

emulator: ERROR: This AVD's configuration is missing a kernel file!!
emulator: ERROR: ANDROID_SDK_ROOT is undefined

有人知道如何解决此问题吗????



@Ted pottel,下面的回答是否可以回答您的问题?如果是这样,请单击它旁边的复选标记。
哈里斯

Answers:


27

您可能确实没有系统映像。仔细检查是否$ANDROID_HOME/system-images/android-<YOUR DESIRED API>/armeabi-v7a存在且不为空。如果确实缺少它们,请使用SDK Manager安装/重新安装。


2
我有两个问题:1:我找不到$ANDROID_HOME/system-images/android-<YOUR DESIRED API>/armeabi-v7a,2:如何使用SDK管理器重新安装虚拟设备
Musa Haidari 2015年

但是,阅读您的回答后,我可以采取一种解决方法,那就是创建一个新的虚拟设备,而新设备并没有出现问题
Musa Haidari

4
在该SDK管理器,确保你勾选“显示包详细信息”,以便您可以查看已安装该系统的图像,如果没有,安装它们
马丁戴维斯

21

转到工具| Android | AVD经理

单击最右边的“操作”列下的箭头(错误消息在此处)

选择编辑

保留默认选择(对我来说,MNC x86 Android M)

点击下一步

点击完成

它可以保存您的AVD,并且错误从上一栏中消失了。模拟器现在可以正常工作了。


15

刚刚解决这个问题。希望这对其他人有帮助。(如Android Studio v2中所述)此问题适用于手臂模拟器。在此示例中,我使用的是armeabi-v7a API 16

解决方法是三个步骤:

步骤1:打开sdk管理器,并确保已安装ARM EABI v7a系统映像

步骤2。这是将sdk的位置添加到系统变量中的明显情况。

右键点击桌面上的“此PC”图标,然后

Properties -> Advanced system settings -> Environment Variables... 然后使用变量名将sdk的路径作为系统变量部分的新路径添加ANDROID_SDK_ROOT

步骤3.重新启动Android Studio以进行更改注册。纠正了ANDROID_SDK_ROOTundefined问题后,即使模拟器可以看到sdk管理器将其安装到了该模拟器,它仍然找不到内核文件。

path-to-sdk\sdk\system-images\android-16\default\armeabi-v7a\kernel-qemu

原因是sdk管理器将内核文件安装到的位置与仿真器正在寻找它的位置之间存在混淆。

如果您为模拟器打开config.ini(Android Studio-> AVD Mananger->“在磁盘上显示”),则会看到以下行:

image.sysdir.1=add-ons\addon-google_apis-google-16\images\armeabi-v7a\

(即\ sdk路径\ adds-on \ 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分钟才能启动)


呃,“模拟器的config.ini”在哪里?
杰伊

Android Studio-> AVD Mananger->“在磁盘上显示”。编辑答案。
Asi Mugrabi

这是实际上对我image.sysdir.1=system-images\android-16\default\armeabi-v7a
有用

对于Nexus 4模拟器,这对我来说很成功。必须更新image.sysdir.1为`system-images \ android-15 \ google_apis \ armeabi-v7a`
树枝

10

通过运行“ C:\ Program Files \ Android \ android-sdk \ AVD Manager.exe”并修复损坏的设备,我已将其修复。


5

简短的答案:尝试用旧学校创造相同的形象<AndroidSDK>\AVD Manager.exe

在Android Studio中运行并运行所有集成工具后,对我而言,不使用旧的管理器(AVD / SDK)就变得很自然。

就我而言,使用新的(集成的)AVD Manager创建带有旧系统映像(如我所测试的API 11及以下)的设备时,我遇到了这个问题。

当我尝试使用旧式AVD Manager工具(位于中<AndroidSDK>\AVD Manager.exe)创建这些旧设备映像时,我获得了成功。


2
感谢您的建议-似乎独立工具知道如何为较旧的平台进行设置。在OS X / macOS上:~/Library/Android/sdk/tools/android avd
Neuromer

4

嘿,刚才遇到了与您所做的相同的问题,google的第三个链接使我进入了引发错误的这段代码,

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 pass来构建ARMv7 *系统映像”

因此,我回去下载了适用于我所需的API级别的x86 intel atom版本,并且能够启动模拟器而不会出现错误。希望它也对您有帮助.....


2

通常,由于针对您要开发的应用程序类型不适合的AVD模拟器,将发生错误。例如,如果您正在为可穿戴设备开发应用程序,但您尝试使用手机模拟器来运行它。


2

我有同样的错误。对我来说,解决方案是更改ANDROID_HOME路径。首先,我研究了Android Studio中的tools-> android-> sdk管理器。在该窗口中,我们可以看到Android Studio查找SDK的路径:image

然后我打开一个Windows CMD shell,执行:

echo %ANDROID_HOME%

但是该路径与第一步的ANDROID STUDIO CONFIGURATION中的路径不同。

解决方案是将用户环境ANDROID_HOME更改为第一步:image

我终于关闭了cmd shell,并打开了另一个cmd shell来执行:

echo %ANDROID_HOME%

路径已更新,我可以完美运行模拟器。


1

就我而言(Windows 10),原因是我敢于将android sdk解压缩到非默认文件夹中。当我将其移动到默认的c:/ Users / [用户名] / AppData / Local / Android / Sdk并更改了Android Studio和系统变量中的路径时,它开始工作。


1
  • 打开Android Studio。
  • 转到设置>系统设置> Android SDK
  • 获取“ Android SDK位置”。
  • 将环境变量ANDROID_SDK_ROOT设置为此值。

它对我有用,我在Windows 10和Android Studio 2.3.3上


1
  1. 转到“编辑系统环境变量”。
  2. 单击新建按钮,然后在变量名称中输入“ ANDROID_SDK_ROOT”,然后在变量值中输入android sdk完整路径。单击确定并关闭。
  3. 刷新AVD。
  4. 这样可以解决错误。

-1

解决此问题的常用方法。

1.通过从android studio运行检查您的SDK管理器,并通过执行./android.sh帮助您查找损坏的程序包来站立alons sdk文件夹

  1. 尝试安装具有Google API支持的系统仿真器映像,而不是Intel。就像,我通过运行另一个系统映像解决了我的问题。

  2. Google针对Linux建议的基于KVM的虚拟化实验

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.