在更新到Android Studio 2后,当我试图运行我的应用程序并选择一个模拟器时,我等待模拟器启动,它突然被杀死。我可以看到模拟器进程几分钟,但从来没有GUI。在Android studio中,我得到了错误
android studio Error while waiting for the device: The emulator process for AVD was killed
即使我在Android Studio之外运行模拟器也会发生这种情况。我试用了Android 6和基于Android 4.4的模拟器。
在Windows 7 x64 PC上运行。类似于另一个StackOverflow帖子被关闭。我尝试了各种ram、VM堆和分辨率设置。
以我为例,在安装了Microsoft Visual c++ Redistributable for Visual Studio 2015、2017和2019 (x86和x64版本)后,问题就解决了。
但是等等!我怎么会知道?我将告诉你我的经历。
当您的程序遇到错误时,您需要做的第一件事是找到要调试的日志。但是记录Android模拟器所有事件的日志文件在哪里?单击帮助→显示登录资源管理器。然后打开一个新窗口,其中有一个名为idea.log的文件,这个日志文件就是我们要找的。
但是这个文件可能记录了太多的详细信息,所以让我们执行以下过程来获得一个更简单的信息:
·退出Android Studio
·删除idea.log
·开放Android Studio
·点击工具→AVD管理器
·启动一个你已经创建的模拟器,不用说,错误将再次发生。但是现在将创建idea.log,并将错误记录到日志文件中!
·退出Android Studio。
·打开idea.log并开始分析它。
·搜索“模拟器”,在我的情况下,有2条消息吸引了我的眼球:
INFO - manager.EmulatorProcessHandler - Emulator: E:\cache\SDK\emulator\emulator.exe -netdelay none -netspeed full -avd Nexus_5_API_22
INFO - manager.EmulatorProcessHandler - Emulator: Process finished with exit code -1073741515 (0xC0000135)
显然,“退出码1073741515”很重要,实际上很多人都问过它在StackOverFlow中是什么意思,但不幸的是,我找不到关于它的任何有用信息。所以让我们传递它,专注于第一条信息。
打开命令行(按“Win”+“R”→进入“CMD”→单击“确定”),复制上述消息E:\cache\SDK\emulator\emulator.exe -netdelay none -netspeed full -avd Nexus_5_API_22
并将其粘贴到命令行。按回车。
我完全不知道这个命令是什么意思,但是可以合理地推断Android Studio运行了这个命令并导致了错误,所以我将尝试重现这个问题。
之后,弹出一个错误窗口,提示“…VCRUNTIME140_1.dll丢失…”。我知道我已经接近答案了。所以我在谷歌上搜索“VCRUNTIME140_1.dll Missing”,人们说“下载并安装Microsoft Visual c++ 2015 - 2019 Redistributable的x86和x64版本将解决这个问题”。
所以我下载了x86和x64版本并安装它们。完成此操作后,再次运行模拟器,一切正常。
如果你的用户名不是ascii/有空格,那么这可能会有帮助,因为我尝试了这里所有的解决方案,不能解决这个问题:
注:我在这个视频中找到了这个解决方案,是一个叫“tatachka”的用户建议的,这是她的评论(她很友好地让我分享在这里)。
For example, I had this path
c:\Users\Таня.android\avd\Nexus_One_API_24.avd My name in Windows is
Таня, written in Cyrillic in windows encoding (cp1251). I changed the
path to e:\Distribu\AVD.android\avd\Nexus_One_API_24.avd I moved
files from disk C there and edited Nexus_One_API_24.ini changing the
path in it and everything worked.
How to change the folder path: My computer -> properties -> advanced
system parameters -> environment variables - > lower 'New...' button:
variable name: ANDROID_SDK_HOME variable value: e:\Distribu\AVD
(in my case)
After the reboot, a new folder(.android) appears in the folder
e:\Distribu\AVD containing the 'avd' folder
编辑:为了澄清,这里的想法是您不希望路径具有非ascii字符。我把它移动到C:\programs_that_cant_read_hebrew(并执行了其他步骤),它工作得很好。
编辑:在注释后将“英文”更改为“ascii/空格”
如果您使用McAfee防病毒和Windows 10,这可能会帮助您:
根据snehatilak的建议,卸载并重新安装Android Emulator最初对我的情况有所帮助,但第二天模拟器又死机了。
我发现McAfee杀毒软件已经隔离了文件avd .conf,原来是在C:\Users[username].android\avd[avdImage]\
在恢复AVD.conf并从扫描中排除它之后,它似乎又好了。
这一切都始于2021年2月2日,我猜是在McAfee更新之后。
以下是步骤:
首先转到“设置”下的“隔离项目”并恢复AVD.conf文件
然后转到“设置”下的“实时扫描”,在你创建的每个模拟器中排除AVD.conf。(位于C:\Users[username].android\avd[avdImage])