我刚完成安装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
有人知道如何解决此问题吗????
Answers:
您可能确实没有系统映像。仔细检查是否$ANDROID_HOME/system-images/android-<YOUR DESIRED API>/armeabi-v7a
存在且不为空。如果确实缺少它们,请使用SDK Manager安装/重新安装。
$ANDROID_HOME/system-images/android-<YOUR DESIRED API>/armeabi-v7a
,2:如何使用SDK管理器重新安装虚拟设备
刚刚解决这个问题。希望这对其他人有帮助。(如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_ROOT
undefined问题后,即使模拟器可以看到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分钟才能启动)
image.sysdir.1=system-images\android-16\default\armeabi-v7a
image.sysdir.1
为`system-images \ android-15 \ google_apis \ armeabi-v7a`
简短的答案:尝试用旧学校创造相同的形象<AndroidSDK>\AVD Manager.exe
。
在Android Studio中运行并运行所有集成工具后,对我而言,不使用旧的管理器(AVD / SDK)就变得很自然。
就我而言,使用新的(集成的)AVD Manager创建带有旧系统映像(如我所测试的API 11及以下)的设备时,我遇到了这个问题。
当我尝试使用旧式AVD Manager工具(位于中<AndroidSDK>\AVD Manager.exe
)创建这些旧设备映像时,我获得了成功。
~/Library/Android/sdk/tools/android avd
。
嘿,刚才遇到了与您所做的相同的问题,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版本,并且能够启动模拟器而不会出现错误。希望它也对您有帮助.....
我有同样的错误。对我来说,解决方案是更改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%
路径已更新,我可以完美运行模拟器。
就我而言(Windows 10),原因是我敢于将android sdk解压缩到非默认文件夹中。当我将其移动到默认的c:/ Users / [用户名] / AppData / Local / Android / Sdk并更改了Android Studio和系统变量中的路径时,它开始工作。