我刚刚完成安装Android工作室并尝试将其用于测试运行。当我尝试运行我的应用程序时,我收到以下错误消息
emulator: ERROR: This AVD's configuration is missing a kernel file!!
emulator: ERROR: ANDROID_SDK_ROOT is undefined
有人知道如何解决这个问题????
答案 0 :(得分:24)
您可能确实没有系统映像。仔细检查$ANDROID_HOME/system-images/android-<YOUR DESIRED API>/armeabi-v7a
是否存在且不为空。如果它们确实丢失了 - 使用SDK管理器安装/重新安装。
答案 1 :(得分:18)
转到工具| Android | AVD经理
单击最右侧“操作”列下的箭头(错误消息所在的位置)
选择修改
保留默认选择(对我来说,MNC x86 Android M)
单击“下一步”
单击“完成”
它保存了您的AVD,错误现在从最后一列消失了。模拟器现在工作正常。
答案 2 :(得分:11)
刚修好了。希望这有助于其他人。 (Android Studio v2中的问题) 此问题适用于arm模拟器。在这个例子中,我使用的是armeabi-v7a API 16
修复是三个步骤:
第1步: 打开sdk管理器并确保已安装ARM EABI v7a System Image
第2步。 这是将sdk的位置添加到系统变量的明显情况。
右键单击桌面上的“此PC”图标,然后
第3步。
重新启动Android Studio以进行注册更改。在纠正 原因是sdk管理器安装内核文件的位置与模拟器正在寻找它的位置之间存在混淆。 如果您为模拟器打开config.ini(Android Studio - &gt; AVD Mananger - &gt;“在磁盘上显示”),您将看到以下行: (即\ path-to-sdk \ add-ons \ addon -....) 我没有在config.ini文件中更改此值而是复制了 (安装了sdk manager文件夹的内核文件) 到 那是缺少的内核文件。您可以运行模拟器。 (您需要关闭Android Studio并重新打开)给模拟器一些时间,因为它比x86慢10倍。 (我花了大约5分钟开始)Properties -> Advanced system settings -> Environment Variables...
然后使用变量名ANDROID_SDK_ROOT
将ANDROID_SDK_ROOT
未定义问题后,模拟器仍然无法找到内核文件,即使它可以看到sdk管理器将其安装到path-to-sdk\sdk\system-images\android-16\default\armeabi-v7a\kernel-qemu
image.sysdir.1=add-ons\addon-google_apis-google-16\images\armeabi-v7a\
path-to-sdk\sdk\system-images\android-16\default\armeabi-v7a\kernel-qemu
\path-to-sdk\add-ons\addon-google_apis-google-16\images\armeabi-v7a\
答案 3 :(得分:10)
我通过运行&#34; C:\ Program Files \ Android \ android-sdk \ AVD Manager.exe&#34;来解决问题。并修复我破损的设备。
答案 4 :(得分:5)
简短回答:尝试使用旧学校<AndroidSDK>\AVD Manager.exe
创建相同的图片。
在Android Studio中运行所有集成工具,我很自然地不使用旧管理器(AVD / SDK)。
就我而言,当使用新的(集成的)AVD Manager来创建具有旧系统映像的设备时,我遇到了这个问题(API 11及以下,正如我测试的那样)。
当我尝试使用旧式AVD Manager工具(位于<AndroidSDK>\AVD Manager.exe
)创建这些旧设备图像时,我取得了成功。
答案 5 :(得分:3)
嘿,刚刚遇到了同样的问题,google中的第3个链接让我抓住了这个引发错误的代码,
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的系统映像通过“
所以我回去并为我想要的API级别下载了x86 intel atom版本,并且能够在没有错误的情况下启动模拟器。希望它也能帮到你......
答案 6 :(得分:2)
通常,由于您正在开发的应用类型的AVD模拟器不合适,将发生错误。例如,如果您正在为可穿戴设备开发应用程序,但您正在尝试使用手机模拟器来运行它。
答案 7 :(得分:2)
我有同样的错误。我的解决方案是更改 ANDROID_HOME 路径。首先,我从Android Studio中了解了 tools-&gt; android-&gt; 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%
路径已更新,我可以完美地运行我的模拟器。
答案 8 :(得分:0)
在我的情况下(Windows 10),原因是我敢将android sdk解压缩到非默认文件夹中。当我将其移动到默认的c:/ Users / [username] / AppData / Local / Android / Sdk并更改Android Studio和系统变量中的路径时,它开始工作。
答案 9 :(得分:0)
它适用于我和我在Windows 10和Android studio 2.3.3
答案 10 :(得分:0)
答案 11 :(得分:-1)
解决此问题的常用方法。
1.通过执行./android.sh
帮助您查找损坏的软件包,从您的Android工作室运行并查看您的SDK管理器并查看sdk文件夹
尝试使用谷歌API支持安装比英特尔支持的系统仿真器图像。就像,我通过运行另一个系统映像解决了我的问题。
Google for Linux建议的基于KVM的Virtulaization的实验