SDK工具更新到25.3.1后,Android Studio上的模拟器无法启动

Mat*_*dim 24 android android-emulator android-studio

在今天将我的Android SDK工具更新到25.3.1之后,模拟器将不再运行.

我可以打开AVD Manager.当我在列表中的某个模拟器上点击"播放"时,我会在Android Studio上看到下面的栏

在此输入图像描述

但是在进度条结束后,没有任何反应.

我在发行说明中看到最新的更新给模拟器带来了变化,所以我想知道这是一个错误还是我错过了一些关于它的东西.

我正在使用Android Studio 2.3.

有任何想法吗?

Fun*_*nal 24

升级后我遇到了同样的问题.我无法弄清楚导致配置问题的原因,但我确实找到了解决方法.

首先,我尝试从命令行启动模拟器:

$ emulator @<name_avd_image>
emulator: ERROR: This AVD's configuration is missing a kernel file! Please ensure the file "kernel-ranchu" is in the same location as your system image.
emulator: ERROR: ANDROID_SDK_ROOT is defined (<android>/sdk) but cannot find kernel file in <android>/sdk/system-images/ sub directories
Run Code Online (Sandbox Code Playgroud)

如果emulator使用-verbose标志运行,可以获得更多信息.我尝试重新安装系统映像(例如Android API 25 x86 w/Google API),Android Emulator 25.3.1,并重新创建AVD但没有任何效果.

最后,作为一种解决方法,我只是将SDK系统映像目录中的所有系统文件复制到AVD目录中:

示例:Pixel XL(Android API 25 x86 w/Google API)
消息来源:<android>/ sdk/system-images/android-25/google_apis/x86/
DESTINATION:〜/ .android/avd/Pixel_XL_API_25.avd /

之后,模拟器启动了.这不是理想的,但这阻碍了我的开发,所以我不得不让模拟器重新启动并运行.我希望其他人能够弄清楚配置中出现了什么.


更新:找出配置问题!

我注意到我经常看到控制台错误"你的模拟器已经过时,请通过启动Android Studio进行更新:"所以我决定检查:

$ which emulator
<$ANDROID_SDK_ROOT>/tools/emulator
Run Code Online (Sandbox Code Playgroud)

在这个帖子的帮助下:

问题是有两个模拟器:一个在 $ANDROID_SDK_ROOT/tools,另一个在 $ANDROID_SDK_ROOT/emulator.那一个$ANDROID_SDK_ROOT/tools 无法启动.将$ANDROID_SDK_ROOT/emulator之前 $ANDROID_SDK_ROOT/tools在你的$PATH变量,它应该解决这个问题.

注意:对于大多数Mac用户,您可以编辑~/.bash_profile更改这些设置,然后运行$source ~/.bash_profile以加载更新.在我的特定情况下,我还有$ ANDROID_HOME的旧值,我必须清除.


Mar*_*ert 20

真正的问题,至少在Ubuntu 16.10和17.04以及Andoid Studio 2.4 Preview 7(但可能发生在任何Debian衍生产品和以前版本的Android Studio上),是Google正在使用模拟器工具分发一个不工作的libstdc ++库.他们分发6.0.18版本,但我发现工作版本是6.0.22.

编辑:有报告称,6.1.21版本的libstdc ++和6.0.22一样.

所以,你有两个选择:

选项1

rm /yoursdkpàth/ emulator/lib64/libstdc ++中之前的非工作Google库

从/yoursdkpàth/ emulator/lib64/libstdc ++中的libstdc ++官方软件包下载并解压缩libs

不要尝试安装.deb,从中提取文件/二进制文件(2个二进制文件位于名为"lib"的文件夹中),并在推荐的路径上手动复制它们.

选项2

创建一个与Ubuntu一起发布的lib的simlink,它已经是6.0.22版本了

cd ~/Android/Sdk/emulator/lib64/libstdc++/

mv libstdc++.so.6 libstdc++.so.6.bak

mv libstdc++.so.6.0.18 libstdc++.so.6.0.18.bak

ln -sf /usr/lib/x86_64-linux-gnu/libstdc++.so.6 ~/Android/Sdk/emulator/lib64/libstdc++/libstdc++.so.6

ln -sf /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.22 ~/Android/Sdk/emulator/lib64/libstdc++/libstdc++.so.6.0.22
Run Code Online (Sandbox Code Playgroud)

重要提示1:由于谷歌似乎并未意识到这个问题,因此在他们对Android Studio中的Android模拟器软件包进行的每次更新中,他们都会破坏使用已损坏/旧版本的工作版SDK C++库的功能.解决方案是重复上述任何程序.

重要事项2:仅当您的AVD配置为使用PC GPU作为视频加速主机(硬件GLES 2.0)时,此功能才有效.在您的AVD上选择Sofware GLES 2.0将无需任何建议的更改,但您的模拟器将变得非常缓慢.


Man*_*han 10

您是否检查了**SDK工具中安装的Android模拟器

转到Setting-> sdk-tools.

查看是否安装了Android.

我面临同样的问题.当我检查SDK工具时,我发现没有安装Android模拟器.

在此输入图像描述


ica*_*rus 6

libstdc++.so.6是原因(正如@doruMarinau所指出的那样); Android Studio 2.3将文件移动到新文件夹your_sdk/emulator/lib64.

如果使用Linux,请为其创建符号链接:

$ ln -sf /usr/lib/libstdc++.so.6  /your_sdk/emulator/lib64/libstdc++/libstdc++.so.6
Run Code Online (Sandbox Code Playgroud)