我在使用模擬器上的android應用程序使用獨立Java調試器時遇到了麻煩。顯然,任何具有遠程功能的java調試器(如jdb(或jswat))都可以使用,按照以下步驟進行操作(按照我的理解,在閱讀這裏和那裏之後):使用「jdb -attach」(或jswat)調試android應用程序
1)打開模擬器,模擬器(ADB安裝)
2)在Dalvik服務器上翻(在模擬器上DDMS)
3),運行中註明 「DevTools」 應用程序 - > 「開發設置」 - >選擇您的應用程序想要調試,啓用「等待調試器」標誌
4)再次在模擬器中運行您的應用程序;它會阻塞,等待調試器附加,並且達爾維克將顯示一個由「紅色臭蟲」標記的新進程; 5)在達爾維克上,選擇紅色標記的進程;其調試端口因此被轉發到本地主機:8700
6)將調試器掛接到localhost:8700。使用jdb,您必須運行「jdb -attach 8700」
只要啓動調試器,模擬器上的應用就會解鎖。所以,似乎應用程序已經正確檢測到一個調試器,從而免費運行。
然而,它的意義在於它「自由運行」,也就是說,它不會等待調試器發出「運行」命令。所以我沒有機會設置任何斷點。
從1得到以下提示後,我試着在應用程序的開始處放置等待循環,希望我有時間設置斷點。當我嘗試設置一個斷點時,jdb表示「延遲斷點XXX.YYY,它將在類被加載後設置。」,因爲應用程序還沒有運行。但是,如果我然後發出「運行」命令,則答案是「沒有暫停」,因爲該應用程序已在運行(而且的確如此)。
隨着jswat看不到人,這些消息,但最終的結果是一樣的:-(
不用說,「加多寶-attach」的作品就好了與本地主機上運行非Android Java應用程序。
任何提示(除了 「請用eclipse」)?
我只是缺少一個愚蠢的細節地方?
的應用程序是一個HelloWorld,打造命令是 「蟻調試」。
預先感謝您。
適用於物理和虛擬設備:https://asantoso.wordpress.com/2009/09/26/using-jdb-with-adb-to-debugging-of-android-app-on-a-real -設備/ – 2018-02-19 19:15:44