Android工作室模拟器没有运行:找不到kernel-ranchu

时间:2017-05-04 02:07:56

标签: android android-studio android-emulator

我一直在尝试从Android工作室运行模拟器,但一直都失败了。起初,它抱怨缺少ANDROID_SDK_ROOT,但是当我设置它时,用google apis创建一个带有最新x86或x86_64图像的模拟器,我收到以下错误:

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 (/mnt/hdd/.android) but cannot find kernel file in /mnt/hdd/.android/system-images/ sub directories

AVD本身是在~/.android/avd/下创建的,即使我的sdk root在env android studio中定义为/mnt/hdd/.android。我确认system.imgkernel-ranchu以及其他文件都存在于/mnt/hdd/.android/system-images/android-25/google_apis/x86{,_64}/下。

我曾尝试从命令行运行模拟器,这似乎仅适用于x86图像(它与x86_64崩溃,请参阅this post)。

$ ANDROID_SDK_ROOT=/mnt/hdd/.android emulator -datadir /mnt/hdd/.android -avd nougat_25

所以,我怀疑avd管理器的问题可能是,当试图从android studio的avd管理器运行模拟器时,-datadir搞砸了。

如何将-datadir标志添加到avd管理器,以便我可以从avd管理器正确运行模拟器。每次更改代码并尝试测试时重新安装新的apk都很麻烦,而且我不想在手机上重新安装应用程序,因为我还没有备用。

如果添加标志不是一个选项,我还可以用avd manager的模拟器解决上述问题?

编辑:我能够通过在emulator中将emulator-real重命名为/mnt/hdd/.android/tools/来使其工作,并在同一目录中创建一个名为emulator的文件,其中包含以下内容。在文件上设置exec位似乎欺骗了android studio运行我自己的脚本。

#!/bin/sh

export ANDROID_SDK_HOME=/mnt/hdd
/mnt/hdd/.android/tools/emulator-real -datadir /mnt/hdd/.android -kernel /mnt/hdd/.android/system-images/android-25/google_apis/x86/kernel-ranchu -system /mnt/hdd/.android/system-images/android-25/google_apis/x86/system.img -ramdisk /mnt/hdd/.android/system-images/android-25/google_apis/x86/ramdisk.img -initdata /mnt/hdd/.android/system-images/android-25/google_apis/x86/userdata.img "$@"

基本上这意味着分别设置-kernel -system -initdata-ramdisk选项,以便模拟器可以选择正确的文件。

我仍然想知道更好的解决此问题的方法,因为用代理脚本替换emulator很麻烦,每次创建新的仿真配置文件时都必须更改脚本。

0 个答案:

没有答案