Android Studio 上的模拟器在 SDK 工具更新到 25.3.1 后无法启动
Emulator on Android Studio doesn't start after SDK tools update to 25.3.1
今天将我的 Android SDK 工具更新到 25.3.1 后,模拟器将不再 运行。
我可以打开 AVD 管理器。当我在列表中的其中一个模拟器上点击 "Play" 时,我在 Android Studio
上看到下面的栏
但是之后进度条走到尽头之后,没有任何反应。
我在 release notes 中看到最新的更新对模拟器进行了更改,所以我想知道这是一个错误还是我遗漏了什么。
我正在使用 Android Studio 2.3。
有什么想法吗?
我运行升级后进入同样的问题。我不知道是什么导致了配置问题,但我确实找到了解决方法。
首先,我尝试从命令行启动模拟器:
$ 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
如果您 运行 emulator
带有 -verbose
标志,您可以获得更多信息。我尝试重新安装系统映像(例如 Android API 25 x86 w/ Google APIs),Android Emulator 25.3.1,然后重新创建 AVD 但没有任何效果。
最后,作为解决方法,我将所有系统文件从 SDK 系统映像目录复制到 AVD 目录中:
示例:Pixel XL(Android API 25 x86 w/ Google APIs)
来源:<android>
/sdk/system-images/android-25/google_apis/x86/
目的地:~/.android/avd/Pixel_XL_API_25.avd/
之后模拟器就启动了。这并不理想,但这阻碍了我的发展,所以我不得不启动模拟器并再次 运行ning。我希望其他人能够找出配置中出现的问题。
更新:解决了配置问题!
我注意到我定期看到控制台错误 "Your emulator is out of date, please update by launching Android Studio:" 所以我决定检查一下:
$ which emulator
<$ANDROID_SDK_ROOT>/tools/emulator
在此thread的帮助下:
The problem is there are two emulators: one in
$ANDROID_SDK_ROOT/tools
, another one in
$ANDROID_SDK_ROOT/emulator
. The one in $ANDROID_SDK_ROOT/tools
cannot start. Place $ANDROID_SDK_ROOT/emulator
before
$ANDROID_SDK_ROOT/tools
in your $PATH
variable, it should fix the
problem.
注意:对于大多数 Mac 用户,您可以编辑 ~/.bash_profile
来更改这些设置,然后 运行 $source ~/.bash_profile
加载更新。在我的特殊情况下,我还必须清除 $ANDROID_HOME 的旧值。
转到 Sdk/emulator/lib64/libstdc++
将 libstdc++.so.6
和 libstdc++.so.6.0.18
移动到我的文件夹(我创建的)(或任何其他位置)作为备份并复制 libstdc++.so.6
、libstdc++.so.6.0.21
来自 usr/lib64
;再次尝试启动您的虚拟设备。
解决方法是:
工具 - Android - SDK 管理器
选项卡 SDK 工具
安装模拟器 25.3.1
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
真正的问题,至少在 Ubuntu 16.10 和 17.04 以及 Andoid Studio 2.4 Preview 7 中(但可能发生在任何 Debian 衍生版本和 Android Studio 的早期版本中),是 Google 正在使用模拟器工具分发一个无法工作的 libstdc++ 库。他们正在分发 6.0.18 版本,但我发现工作版本是 6.0.22。
编辑:有报道称 6.0.21 版本的 libstdc++ 与 6.0.22 一样有效。
所以,你有两个选择:
选项 1
rm
/yoursdkpàth/emulator/lib64/libstdc++
中以前的非工作 Google 库
在 /yoursdkpàth/emulator/lib64/libstdc++
中从 libstdc++ official package 下载并提取库
不要尝试安装 .deb,从其中提取 files/binaries(2 个二进制文件位于名为 "lib" 的文件夹中)并手动将它们复制到推荐路径。
选项 2
创建一个指向随 Ubuntu 分发的库的 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
重要提示 1:由于 Google 似乎没有意识到这个问题,所以在他们对 Android Studio 中的 Android 模拟器包进行的每次更新中,他们破坏了功能,用 broken/older 库替换了您的工作 SDK C++ 库。解决方法是重复以上任何一个步骤。
重要提示 2:仅当您的 AVD 配置为使用 PC GPU 作为视频加速主机(硬件 GLES 2.0)时,这才有效。在您的 AVD 上选择 Sofware GLES 2.0 将在没有任何建议的更改的情况下工作,但您的模拟器会变得非常慢。
你检查过安装在**SDK工具中的Android模拟器了吗?
转到设置-> sdk-tools。
查看是否安装了Android
我也遇到了同样的问题。查看SDK Tools时,发现Android模拟器没有安装
最近几天让我抓狂。这是对我有用的:
ANDROID_HOME, ANDROID_SDK_ROOT
"System Environment Variables" 中的变量不同于 Android Studio -> Settings -> Android SDK Location
。所以当我更改环境变量时,AVD 启动了!
(修改环境变量后,需要重启Android Studio)
这是一个 libGL 错误和 libstdc++ 问题。无法在模拟器中启动 AVD。
这是一个已知错误,您可以通过一些简单的步骤轻松解决它。
我已经在 Ubuntu 16.10 64 位
上测试了这个解决方案
解法:
$adb kill-server
$adb start-server
之后从 Android 工作室启动您的模拟器。如果这不起作用,请继续执行下一个解决方案。
备选方案:
首先,安装一些包和库:
$sudo apt-get install lib64stdc++6:i386
$sudo apt-get install mesa-utils
其次,调整一些链接:
$ cd YOURPATH/Android/Sdk/tools/lib64
$ mv libstdc++/ libstdc++.bak
$ ln -s /usr/lib64/libstdc++.so.6 libstdc++
第三,重新启动您的 AVD 设备并进行测试。
这对我有用:
转到 AVD 管理器,然后在“操作”列中单击指向黎明和 select "Wipe Data" 的箭头。
在此之后,尝试 运行 模拟器。
唯一对我有用的解决方案是安装以下缺少的库:
$sudo apt-get install lib64stdc++6:i386
$sudo apt-get install mesa-utils
一旦你有了它们,请使用以下内容更新 sdk 模拟器中的那个:
$ ln -sf /usr/lib/libstdc++.so.6 /home/[YOUR_SYSTEM_USERNAME]/emulator/lib64/libstdc++/libstdc++.so.6
再次启动您的模拟器,它将正常运行。
从这个版本开始,Android 模拟器将与 SDK 工具分开发布。
所以只需在 android studio
中使用 sdk 工具安装 android Emulator
我的问题是 ANDROID_SDK_HOME
指向 d:\.android
而不是 d:\
。找不到图片了。
今天将我的 Android SDK 工具更新到 25.3.1 后,模拟器将不再 运行。
我可以打开 AVD 管理器。当我在列表中的其中一个模拟器上点击 "Play" 时,我在 Android Studio
上看到下面的栏但是之后进度条走到尽头之后,没有任何反应。
我在 release notes 中看到最新的更新对模拟器进行了更改,所以我想知道这是一个错误还是我遗漏了什么。
我正在使用 Android Studio 2.3。
有什么想法吗?
我运行升级后进入同样的问题。我不知道是什么导致了配置问题,但我确实找到了解决方法。
首先,我尝试从命令行启动模拟器:
$ 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
如果您 运行 emulator
带有 -verbose
标志,您可以获得更多信息。我尝试重新安装系统映像(例如 Android API 25 x86 w/ Google APIs),Android Emulator 25.3.1,然后重新创建 AVD 但没有任何效果。
最后,作为解决方法,我将所有系统文件从 SDK 系统映像目录复制到 AVD 目录中:
示例:Pixel XL(Android API 25 x86 w/ Google APIs)
来源:<android>
/sdk/system-images/android-25/google_apis/x86/
目的地:~/.android/avd/Pixel_XL_API_25.avd/
之后模拟器就启动了。这并不理想,但这阻碍了我的发展,所以我不得不启动模拟器并再次 运行ning。我希望其他人能够找出配置中出现的问题。
更新:解决了配置问题!
我注意到我定期看到控制台错误 "Your emulator is out of date, please update by launching Android Studio:" 所以我决定检查一下:
$ which emulator
<$ANDROID_SDK_ROOT>/tools/emulator
在此thread的帮助下:
The problem is there are two emulators: one in
$ANDROID_SDK_ROOT/tools
, another one in$ANDROID_SDK_ROOT/emulator
. The one in$ANDROID_SDK_ROOT/tools
cannot start. Place$ANDROID_SDK_ROOT/emulator
before$ANDROID_SDK_ROOT/tools
in your$PATH
variable, it should fix the problem.
注意:对于大多数 Mac 用户,您可以编辑 ~/.bash_profile
来更改这些设置,然后 运行 $source ~/.bash_profile
加载更新。在我的特殊情况下,我还必须清除 $ANDROID_HOME 的旧值。
转到 Sdk/emulator/lib64/libstdc++
将 libstdc++.so.6
和 libstdc++.so.6.0.18
移动到我的文件夹(我创建的)(或任何其他位置)作为备份并复制 libstdc++.so.6
、libstdc++.so.6.0.21
来自 usr/lib64
;再次尝试启动您的虚拟设备。
解决方法是: 工具 - Android - SDK 管理器 选项卡 SDK 工具 安装模拟器 25.3.1
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
真正的问题,至少在 Ubuntu 16.10 和 17.04 以及 Andoid Studio 2.4 Preview 7 中(但可能发生在任何 Debian 衍生版本和 Android Studio 的早期版本中),是 Google 正在使用模拟器工具分发一个无法工作的 libstdc++ 库。他们正在分发 6.0.18 版本,但我发现工作版本是 6.0.22。
编辑:有报道称 6.0.21 版本的 libstdc++ 与 6.0.22 一样有效。
所以,你有两个选择:
选项 1
rm
/yoursdkpàth/emulator/lib64/libstdc++
在 /yoursdkpàth/emulator/lib64/libstdc++
中从 libstdc++ official package 下载并提取库不要尝试安装 .deb,从其中提取 files/binaries(2 个二进制文件位于名为 "lib" 的文件夹中)并手动将它们复制到推荐路径。
选项 2
创建一个指向随 Ubuntu 分发的库的 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
重要提示 1:由于 Google 似乎没有意识到这个问题,所以在他们对 Android Studio 中的 Android 模拟器包进行的每次更新中,他们破坏了功能,用 broken/older 库替换了您的工作 SDK C++ 库。解决方法是重复以上任何一个步骤。
重要提示 2:仅当您的 AVD 配置为使用 PC GPU 作为视频加速主机(硬件 GLES 2.0)时,这才有效。在您的 AVD 上选择 Sofware GLES 2.0 将在没有任何建议的更改的情况下工作,但您的模拟器会变得非常慢。
你检查过安装在**SDK工具中的Android模拟器了吗?
转到设置-> sdk-tools。
查看是否安装了Android
我也遇到了同样的问题。查看SDK Tools时,发现Android模拟器没有安装
最近几天让我抓狂。这是对我有用的:
ANDROID_HOME, ANDROID_SDK_ROOT
"System Environment Variables" 中的变量不同于 Android Studio -> Settings -> Android SDK Location
。所以当我更改环境变量时,AVD 启动了!
(修改环境变量后,需要重启Android Studio)
这是一个 libGL 错误和 libstdc++ 问题。无法在模拟器中启动 AVD。 这是一个已知错误,您可以通过一些简单的步骤轻松解决它。
我已经在 Ubuntu 16.10 64 位
上测试了这个解决方案解法:
$adb kill-server
$adb start-server
之后从 Android 工作室启动您的模拟器。如果这不起作用,请继续执行下一个解决方案。
备选方案:
首先,安装一些包和库:
$sudo apt-get install lib64stdc++6:i386
$sudo apt-get install mesa-utils
其次,调整一些链接:
$ cd YOURPATH/Android/Sdk/tools/lib64
$ mv libstdc++/ libstdc++.bak
$ ln -s /usr/lib64/libstdc++.so.6 libstdc++
第三,重新启动您的 AVD 设备并进行测试。
这对我有用:
转到 AVD 管理器,然后在“操作”列中单击指向黎明和 select "Wipe Data" 的箭头。 在此之后,尝试 运行 模拟器。
唯一对我有用的解决方案是安装以下缺少的库:
$sudo apt-get install lib64stdc++6:i386
$sudo apt-get install mesa-utils
一旦你有了它们,请使用以下内容更新 sdk 模拟器中的那个:
$ ln -sf /usr/lib/libstdc++.so.6 /home/[YOUR_SYSTEM_USERNAME]/emulator/lib64/libstdc++/libstdc++.so.6
再次启动您的模拟器,它将正常运行。
从这个版本开始,Android 模拟器将与 SDK 工具分开发布。 所以只需在 android studio
中使用 sdk 工具安装 android Emulator我的问题是 ANDROID_SDK_HOME
指向 d:\.android
而不是 d:\
。找不到图片了。