无法在 Android Studio 中运行模拟器

Posted

技术标签:

【中文标题】无法在 Android Studio 中运行模拟器【英文标题】:Cannot run emulator in Android Studio 【发布时间】:2015-05-06 01:13:31 【问题描述】:

我刚刚完成了 android Studio 的安装并尝试将其用于测试运行。当我尝试运行我的应用程序时,我收到以下错误消息

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

有人知道怎么解决吗???

【问题讨论】:

看看这个答案***.com/questions/9712605/… @Ted pottel,以下任何答案是否回答了您的问题?如果是这样,请单击它旁边的复选标记。 【参考方案1】:

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

【讨论】:

我有两个问题:1:找不到$ANDROID_HOME/system-images/android-<YOUR DESIRED API>/armeabi-v7a,2:如何使用SDK manager重新安装虚拟设备 但是,阅读您的答案,我可以做一个解决方法,那就是创建一个新的虚拟设备,新设备没有出现问题 在 SDK 管理器中,确保选中“显示包详细信息”,以便查看安装了哪些系统映像,如果没有,请安装它们【参考方案2】:

转到工具 |安卓 | AVD 管理器

单击最右侧(错误消息所在的位置)“操作”列下的箭头

选择编辑

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

点击下一步

点击完成

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

【讨论】:

【参考方案3】:

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

修复分为三个步骤:

第 1 步: 打开sdk manager,确保你已经安装了ARM EABI v7a System Image

第 2 步。 这是将 sdk 的位置添加到系统变量中的明显案例。

右击桌面上的“这台电脑”图标,然后

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

第 3 步。 重新启动 Android Studio 以注册更改。更正ANDROID_SDK_ROOT is undefined 问题后,模拟器仍然找不到内核文件,即使它可以看到sdk管理器将其安装到

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

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

如果您为您的模拟器打开 config.ini (Android Studio -> AVD Mananger -> "Show On Disk"),您将看到以下行:

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 manager 中的内核文件)

\path-to-sdk\add-ons\addon-google_apis-google-16\images\armeabi-v7a\

这就是丢失的内核文件。您可以运行模拟器。 (您需要关闭 Android Studio 并重新打开)给模拟器一些时间,因为它比 x86 慢 10 倍。 (我的启动花了大约 5 分钟)

【讨论】:

呃,“模拟器的 config.ini”在哪里? Android Studio -> AVD Mananger -> “在磁盘上显示”。编辑答案。 这是对我有用的答案,就我而言,这是我编辑的行:image.sysdir.1=system-images\android-16\default\armeabi-v7a 这对我来说是 Nexus 4 模拟器的诀窍。必须将 image.sysdir.1 更新为 `system-images\android-15\google_apis\armeabi-v7a`【参考方案4】:

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

【讨论】:

【参考方案5】:

嘿,你刚刚遇到了同样的问题,谷歌的第三个链接让我看到了这段引发错误的代码,

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 * 自动输入。这是穷人的配置方法 * 管理,但应该允许我们通过构建 ARMv7 * 带有 dex preopt pass 的系统镜像"

所以我回去下载了我想要的 API 级别的 x86 intel atom 版本,并且能够在没有错误的情况下启动模拟器。希望对你也有帮助.....

【讨论】:

【参考方案6】:

简答:尝试使用老派<AndroidSDK>\AVD Manager.exe创建相同的图像。

在 Android Studio 中工作,运行所有集成工具,我很自然地不使用旧的管理器 (AVD/SDK)。

在我的例子中,我在使用新的(集成的)AVD 管理器创建具有旧系统映像(API 11 及更低版本,我已经测试过)的设备时遇到了这个问题。

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

【讨论】:

感谢您的建议——似乎独立工具知道如何为旧平台进行设置。在 OS X / macOS 上:~/Library/Android/sdk/tools/android avd.【参考方案7】:

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

【讨论】:

【参考方案8】:

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

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

echo %ANDROID_HOME%

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

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

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

echo %ANDROID_HOME%

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

【讨论】:

【参考方案9】:

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

【讨论】:

【参考方案10】: 打开 Android 工作室。 进入设置 > 系统设置 > Android SDK 获取“Android SDK 位置”。 将环境变量 ANDROID_SDK_ROOT 设置为此值。

它对我有用,我使用的是 Windows 10 和 Android Studio 2.3.3

【讨论】:

【参考方案11】:
    转到“编辑系统环境变量”。 点击新建按钮,在变量名中输入“ANDROID_SDK_ROOT”,在变量值中输入android sdk完整路径。点击确定并关闭。 刷新 AVD。 这将解决错误。

【讨论】:

【参考方案12】:

解决此问题的常用方法。

1.通过在您的 android studio 中运行来检查您的 SDK 管理器,并通过执行 ./android.sh 来帮助您找到损坏的软件包

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

    Google 为 Linux 建议的基于 KVM 的虚拟化实验

【讨论】:

以上是关于无法在 Android Studio 中运行模拟器的主要内容,如果未能解决你的问题,请参考以下文章

Android Studio 无法运行 Xcode 模拟器

Android Studio:无法访问包管理器。系统在运行吗?

android studio模拟器无法播放视频

无法在Android Studio上运行模拟器

无法在 Android Studio 中运行项目。也许是因为gradle?

Android Studio 应用程序可在真实设备上运行,但无法在模拟器上运行