MBOT整合MIT APP INVENTOR2 在平板開發app的一系列教材
此份教材會提供教師或學生同時使用,已熟析的使用者可以跳過。
當使用模擬器出現
aiStarter程式不在執行狀態中,
是否需要說明?
或是
Unable to retrieve the version of aiStarter installed on your
computer. Connection wil proceed, but errors may occur.
的處理方法。
基本上那個「說明」按下去只會到官網,根本幫不了啥,沒用。
一、發生可能的原因
之所以會出現這個狀態,是一個偶然的情況:
某次當我連按二次 aiStarter時,因為執行的時間差,這程式也沒檢查有沒有別的 aiStarter已先執行,就開啟來了。
結果優先執行的有跑起來,後者沒跑起來出現一個黑畫面,但沒有什麼錯誤。
我本能的想把黑畫面的關掉,或是說,我想全部關掉再重新執行一次。
想法很簡單…
再重新執行的時候,發現程式有跑起來,似乎很完美,但是不管怎麼試就出錯了。
我關掉瀏覽器、關掉aiStarter、重登出入,問題依舊。
這狀態學生出現了幾次(還滿頻繁的),事實上他們怎麼會弄成這樣我也不清楚,最簡單有效的方法就是
重新開機
二、尋找解法
總不能每次找不到問題就這樣處理吧,於是我又直覺的認為,肯定是埠被占了,只要能 release就好:
aiStarter監聽8004埠,果不其然有一堆關不掉的連結和一個正在監聽的的程序。
我下 netstat -atb
企圖找出是誰在執行這個監聽,他告訴我是「系統」。
再下 netstat -ano
取得執行的程序號,是7120,我開啟事件管理員及tcpview,竟然發現,這個程序已經不存在。
我企圖殺掉這個不存在的程序,但是無功!
包括TCPVIEW也殺不掉這個幽靈程序。
C:\>taskkill/pid 7120 /F
錯誤: 找不到處理程序 "7120"。
C:\>taskkill /f /im 7120
錯誤: 找不到處理程序 "7120"。
這根本是
死掉的程序正在監聽我的8004埠啊~~
a process that is dead but listening my 8004
什麼鬼完意啊!
我研究了好久,目標轉成,如何殺掉一個幽靈程序的監聽埠,在[2]的回答中,有人建議使用 ProcessExplorer[3]來解決,並能正確的殺掉這個程序。
三、使用 ProcessExplorer
找到微軟的載點下載 https://docs.microsoft.com/en-us/sysinternals/downloads/process-explorer
程式是個壓縮檔,不必安裝直接執行,這裡面也無法發現這個死掉的程序,
不過話沒說完,用他提供的搜尋工具,輸入aistarter後,發現這個 adb.exe是他的影分身,不,應該說是他的主體。
監聽在8001埠,並操控著傀儡8004埠。
我試著刪了這個程序,發現8004埠的監聽都消失了。
終於水落石出
現在只要按Ctrl+Alt+Del開啟程序管理員,找到adb.exe這個程式,把他刪掉,再重新執行 aistarter,手機就可能重新連結上去了。
不必重開機!
參考資料
[1] https://superuser.com/questions/215351/how-do-i-kill-a-process-that-is-dead-but-listening
[2] https://serverfault.com/questions/181015/how-do-you-free-up-a-port-being-held-open-by-dead-process
[3] https://docs.microsoft.com/en-us/sysinternals/downloads/process-explorer