Android-关于启动不了Android Device Monitor
最近遇到一個問題,想在Device Monitor 中查看線程的狀態,結果發現進入到 SDK/tools目錄之后,執行命令 ./monitor 結果卻是發現報錯,命令如下:
zfz:tools zhangfengzhou$ pwd /Users/zhangfengzhou/Library/Android/sdk/tools zfz:tools zhangfengzhou$ ./monitor報錯的意思是說JVM有問題,其實是我安裝了多個JDK導致的,那么就需要刪除多余的JDK,而且Device Monitor 也只能支持JDK8以及之前的版本,所以我就需要刪除之后的版本。
首先,查看下JAVA_HOME 配置,結果我是已經配置好了啊,為什么還會出問題呢,其實有兩個JDK版本被安裝了,但是查找命令不是這個:
zfz:tools zhangfengzhou$ echo $JAVA_HOME /Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home而是如下命令:
zfz:tools zhangfengzhou$ /usr/libexec/java_home -V Matching Java Virtual Machines (2):1.8.0_322 (x86_64) "Amazon" - "Amazon Corretto 8" /Users/zhangfengzhou/Library/Java/JavaVirtualMachines/corretto-1.8.0_322/Contents/Home1.8.0_144 (x86_64) "Oracle Corporation" - "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home /Users/zhangfengzhou/Library/Java/JavaVirtualMachines/corretto-1.8.0_322/Contents/Home哦吼,是有多個JDK安裝在系統中,現在需要刪除的是 1.8.0_322 版本,進入該目錄,然后刪除即可,但是再次執行 ./monitor 命令的時候,再次報錯,這里問題是沒喲鏈接正確的問題
zfz:tools zhangfengzhou$ ./monitor JavaVM: Failed to load JVM: /Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/lib/libserver.dylib JavaVM FATAL: Failed to load the jvm library.升級到 macOS Big Sur以后,之前安裝的dbeaver和mat都無法打開了,點擊報錯都是同一個問題。
實際上oracle jdk在安裝完成以后是沒有 libserver.dylib 這個文件的,但是dbeaver和mat還是在查找這個文件,應該是出兼容性bug了。
解決的方案很簡單,就是要找到這個 libserver.dylib 對應應該是什么文件就可以了。幾番折騰之下,我在這里找到了答案,實際的地址應該是
/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/lib/libserver.dylib使用ln -s創建一個鏈接就可以解決了:
sudo ln -s /Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/home/jre/lib/server/libjvm.dylib /Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/lib/libserver.dylib最終解決問題的命令如下:
zfz:tools zhangfengzhou$ sudo ln -s /Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/home/jre/lib/server/libjvm.dylib /Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/lib/libserver.dylib Password:最終,執行./monitor 就可以看到執行成功,并顯示DDMS畫面:
下來該說下如何啟動模擬器:
首先查找下我們已經創建了哪些模擬器:
zfz:sdk zhangfengzhou$ emulator -list-avds Pixel_2_API_29 Pixel_API_24 zfz:sdk zhangfengzhou$然后啟動模擬器:
zfz:sdk zhangfengzhou$ emulator -avd Pixel_API_24?然后會發現出現如下問題:
zfz:sdk zhangfengzhou$ emulator -avd Pixel_API_24 [4604937728]:ERROR:android/android-emu/android/qt/qt_setup.cpp:28:Qt library not found at ../emulator/lib64/qt/lib Could not launch '/Users/zhangfengzhou/Library/Android/sdk/../emulator/qemu/darwin-x86_64/qemu-system-i386': No such file or directory最終也沒有能夠成功啟動模擬器,看來只能靠AndroidStudio來啟動了。
看下如何查看線程狀態:
如圖所示,我們需要先選中我們要查看的進程,然后點擊Update Threads, 最后點擊 Threads這一欄,需要注意,首次使用的時候,會提示我們需要Enable這個功能,所以在偏好中選中,如下:
然后,再次回到Threads 這一欄,點擊 Refresh 即可更新線程狀態。?提示,有時候會出現不能顯示線程狀態信息,我猜可能有Bug,需要每一行的去點擊,然后才會顯示出來每一行的線程狀態,自己試下就知道了。
總結
以上是生活随笔為你收集整理的Android-关于启动不了Android Device Monitor的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Devc++还原ggcc.graphic
- 下一篇: 如何将wps中的表格转为图片,并设置较高