2017-08-15 162 views
8

运行使用CLI,并与下面的命令运行模拟器另一个模拟器实例:只有无法启动Android模拟器,出现错误:有当前AVD

./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问题而不重新创建它?

回答

20

我设法通过除去AVD管理器创建一个锁定文件来解决这个问题。

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

一旦我删除文件,模拟器一直运行正常。

0

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

首先找到PID

adb shell ps 

然后你杀的过程

adb shell kill <PID> 
+0

已经尝试过,但没有正在运行的仿真程序所以没有将其杀死。 –

+0

命令如何:adb shell ps你能看到什么吗? –

+0

如果你找到一个PID试试这个杀死adb shell kill

1

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

sudo chown -R YOUR_USER. avd 
1

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

在我的情况下,持有avd目录的文件系统被安装为只读。重新安装它rw解决了这个问题

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