2017-08-15 156 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