1. 程式人生 > >AndroidStudio 開啟模擬器閃退

AndroidStudio 開啟模擬器閃退

環境:macosx

最近沒做什麼操作,然後想用下AndroidStudio的模擬器測下東西,發現不管怎麼開啟都啟動不了模擬器。AndroidStudio又沒有報任何資訊就突然閃退,然後開始排查。

  • 1.可能是模擬器壞了,換一個啟動,發現還是老樣子,看來必須要獲取點錯誤日誌資訊。
  • 2.網上搜索到 emulator -avd “Nexus 4 API 22(我的模擬器avd顯示的名字)” 命令可以開啟模擬器,這樣就可以在控制檯看到具體資訊了。發現報錯
PANIC: Unknown AVD name [Nexus 4 API 22], use -list-avds to see valid list
. HOME is defined but could not find Nexus 4 API 22.ini file in $HOME/.android/avd (Note: avd is searched in the order of $ANDROID_AVD_HOME,$ANDROID_SDK_HOME/.android/avd and $HOME/.android/avd)

通過進入$ANDROID_SDK_HOME/.android/avd目錄發現原來顯示的名字“Nexus 4 API 22”並不是真是名字而是”Nexus_4_API_22

admin-test:avd yfjin$ ls
3.2
_QVGA_ADP2_API_19.avd Nexus_4_API_22.avd 3.2_QVGA_ADP2_API_19.ini Nexus_4_API_22.ini
  • 3.使用命令”emulator -avd Nexus_4_API_22“發現仍然報錯
[140737055048640]:ERROR:./android/qt/qt_setup.cpp:28:Qt library not found at ../emulator/lib64/qt/lib
Could not launch '../emulator/qemu/darwin-x86_64/qemu-system-i386': No such file or
directory

搜尋得到命令列啟動的話缺少一個環境變數配置,找到自己放android sdk的目錄配置一下

export PATH="$PATH:~/Library/Android/android-sdk-macosx/emulator/"
  • 4.再次執行”emulator -avd Nexus_4_API_22“,總算髮現真正無法啟動的原因了
admin-test:emulator yfjin$ emulator -avd Nexus_4_API_22
emulator: WARNING: encryption is off
Hax is enabled
Hax ram_size 0x60000000
HAX is working and emulator runs in fast virt mode.
Failed to sync vcpu reg
Failed to sync vcpu reg
Failed to sync vcpu reg
Failed to sync HAX vcpu contextInternal error: Initial hax sync failed
  • 5.網上搜了下,發現說什麼建立模擬器勾選GPU什麼的,但是我沒在mac模擬器建立的時候發現這個選項。然後再搜尋,在https://cloud.tencent.com/developer/ask/29816/answer/37949發現一句話:“確保沒有執行任何虛擬機器。在我的例子中,運行了genyMotion,所以才會爆出這個錯誤”。

  • 6.想了想,最近在學習springboot和docker。前段時間裝了docker,而且是開啟自啟動的,docker貌似啟動的時候是和虛擬機器有關的。於是立馬把docker退了。再次啟動模擬器…

成功!

成功!

成功!

  • 話說一步步摸索下來找原因還是蠻有意思的,比粗暴的什麼選擇GPU那類回答好多了(我也沒找到,說不定找到了GPU什麼的選項未必就會下一步探究真正的原因了),記錄一下,哈哈。