无法启动 android 模拟器并出现错误:当前 AVD 正在运行另一个模拟器实例

Posted

技术标签:

【中文标题】无法启动 android 模拟器并出现错误:当前 AVD 正在运行另一个模拟器实例【英文标题】:Unable to start android emulator with ERROR: There's another emulator instance running with the current AVD 【发布时间】:2018-01-23 09:24:53 【问题描述】:

使用 CLI 并使用以下命令运行模拟器:

./emulator -use-system-libs @Nexus5API25

只显示错误,模拟器不启动。

emulator: ERROR: There's another emulator instance running with the current AVD 'Nexus5API25'. Exiting...

还有:

没有任何正在运行的模拟器实例。 Nexus5API25 确实存在并且过去一直在工作。 我必须在我的机器上使用 -use-system-libs 标志来启动模拟器实例。 其他 AVD 正在运行。

使用 -verbose 执行时,会打印更多详细信息,但我看不到任何可以帮助我解决问题的方法:

emulator:android emulator version 26.1.3.0 (build_id 4205252) (CL:e55642d861e04276b2fa453bfaff4a836f3a3269)
emulator:Found AVD name 'Nexus5API25'
emulator:Found AVD target architecture: x86_64
emulator:argv[0]: './emulator'; program directory: '/home/developer/opt/Android/Sdk/emulator'
emulator:  Found directory: /home/developer/opt/Android/Sdk/system-images/android-25/google_apis/x86_64/

emulator:Probing for /home/developer/opt/Android/Sdk/system-images/android-25/google_apis/x86_64//kernel-ranchu: file exists
emulator:Auto-config: -engine qemu2 (based on configuration)
emulator:  Found directory: /home/developer/opt/Android/Sdk/system-images/android-25/google_apis/x86_64/

emulator:try dir /home/developer/opt/Android/Sdk/emulator
emulator:Found target-specific 64-bit emulator binary: /home/developer/opt/Android/Sdk/emulator/qemu/linux-x86_64/qemu-system-x86_64
emulator:Adding library search path: '/home/developer/opt/Android/Sdk/emulator/lib64'
emulator:Adding library search path: '/home/developer/opt/Android/Sdk/emulator/lib64/gles_swiftshader'
emulator:Adding library search path: '/home/developer/opt/Android/Sdk/emulator/lib64/gles_angle'
emulator:Adding library search path: '/home/developer/opt/Android/Sdk/emulator/lib64/gles_angle9'
emulator:Adding library search path: '/home/developer/opt/Android/Sdk/emulator/lib64/gles_angle11'
emulator: Adding library search path for Qt: '/home/developer/opt/Android/Sdk/emulator/lib64/qt/lib'
emulator: Setting Qt plugin search path: QT_QPA_PLATFORM_PLUGIN_PATH=/home/developer/opt/Android/Sdk/emulator/lib64/qt/plugins
emulator: Running :/home/developer/opt/Android/Sdk/emulator/qemu/linux-x86_64/qemu-system-x86_64
emulator: qemu backend: argv[00] = "/home/developer/opt/Android/Sdk/emulator/qemu/linux-x86_64/qemu-system-x86_64"
emulator: qemu backend: argv[01] = "-verbose"
emulator: qemu backend: argv[02] = "-use-system-libs"
emulator: qemu backend: argv[03] = "@Nexus5API25"
emulator: Concatenated backend parameters:
 /home/developer/opt/Android/Sdk/emulator/qemu/linux-x86_64/qemu-system-x86_64 -verbose -use-system-libs @Nexus5API25
emulator: Android virtual device file at: /home/developer/.android/avd/Nexus5API25.ini
emulator: virtual device content at /home/developer/.android/avd/Nexus_5_API_25.avd
emulator: virtual device config file: /home/developer/.android/avd/Nexus_5_API_25.avd/config.ini
emulator: using core hw config path: /home/developer/.android/avd/Nexus_5_API_25.avd/hardware-qemu.ini
emulator: Found AVD target API level: 25
emulator: Read property file at /home/developer/opt/Android/Sdk/system-images/android-25/google_apis/x86_64//build.prop
emulator: No boot.prop property file found.
emulator: found skin 'nexus_5' in directory: /home/developer/opt/Android/Sdk/skins/
emulator: autoconfig: -skin nexus_5
emulator: autoconfig: -skindir /home/developer/opt/Android/Sdk/skins/
emulator: autoconfig: -kernel /home/developer/opt/Android/Sdk/system-images/android-25/google_apis/x86_64//kernel-ranchu
emulator: Target arch = 'x86_64'
emulator: Auto-detect: Kernel image requires new device naming scheme.
emulator: Auto-detect: Kernel does not support YAFFS2 partitions.
emulator: autoconfig: -ramdisk /home/developer/opt/Android/Sdk/system-images/android-25/google_apis/x86_64//ramdisk.img
emulator: Using initial system image: /home/developer/opt/Android/Sdk/system-images/android-25/google_apis/x86_64//system.img
emulator: No vendor image
emulator: autoconfig: -data /home/developer/.android/avd/Nexus_5_API_25.avd/userdata-qemu.img
emulator: autoconfig: -initdata /home/developer/.android/avd/Nexus_5_API_25.avd/userdata.img
emulator: autoconfig: -cache /home/developer/.android/avd/Nexus_5_API_25.avd/cache.img
emulator: autoconfig: -sdcard /home/developer/.android/avd/Nexus_5_API_25.avd/sdcard.img
emulator: Physical RAM size: 1536MB

emulator: VM heap size 128MB is below hardware specified minimum of 384MB,setting it to that value
emulator: System image is read only
emulator: Found 1 DNS servers: 127.0.0.53
emulator: ERROR: There's another emulator instance running with the current AVD 'Nexus5API25'. Exiting...

我知道我可以删除 AVD 并创建新的。但是有没有办法解决现有 AVD 的问题而不重新创建它?

【问题讨论】:

【参考方案1】:

您是否尝试在运行脚本之前终止进程?

首先找到 PID

adb shell ps 

然后你杀死进程

adb shell kill <PID>

【讨论】:

已经试过了,但没有运行模拟器进程,所以没有什么可杀的。 命令如何:adb shell ps 你能看到什么吗? 如果你找到一个 PID 试试这个杀死 adb shell kill 【参考方案2】:

我设法通过删除由 avd 管理器创建的锁定文件来解决问题。

rm ~/.android/avd/Nexus_5_API_25.avd/hardware-qemu.ini.lock

删除文件后,模拟器一直运行没有问题。

【讨论】:

@neena,对不起,我不知道。我只使用 Linux 和 MacOs 进行开发,我相信 Windows 上的 android 模拟器不使用 Qemu,所以它可能是完全不同的问题和/或解决方案。该问题带有 [linux] 标记,因为它是特定于操作系统的。 也需要rm ~/.android/avd/Nexus_5_API_25.avd/multiinstance.lock【参考方案3】:

在 Linux 中,这也可能是由于 root 创建了 AVD 而另一个用户尝试运行模拟器。在这种情况下,更改 avd 文件夹内容的所有者应该有助于解决它。

sudo chown -R YOUR_USER. avd

【讨论】:

【参考方案4】:

我遇到了同样的问题,即使没有其他模拟器在运行。

在我的例子中,保存avd 目录的文件系统是只读挂载的。重新安装它rw 解决了问题

mount -o remount,rw /path/to/avd/file/system

【讨论】:

以上是关于无法启动 android 模拟器并出现错误:当前 AVD 正在运行另一个模拟器实例的主要内容,如果未能解决你的问题,请参考以下文章

开发 Android 应用程序 - 无法使用任何 android 模拟器

出现错误 - 运行本机反应时无法识别的命令“run-android”,

Android Studio 中的模拟器无法启动

数据存储在 USB 记忆棒上时无法启动 android 虚拟设备 (AVD)

错误:无法确定当前字符,它不是 android react-native 中的字符串、数字、数组或对象

无法从 Eclipse、android 中删除虚拟设备