2016-10-01 48 views
9

我正試圖按照these指示調試android的javascript。如何在Android上調試javascript時打斷點(並查看錯誤行號)?

我知道How can I debug javascript on Android?,但我不清楚我是如何(或如果)能夠達到斷點 - 無論是在Android設備上使用Chrome還是在Android瀏覽器上。

我可以看到和「檢查」設備OK:

enter image description here

但斷點沒有被擊中,我也可以看到錯誤在控制檯行號:

enter image description here

在這兩個問題之間,我沒有從調試體驗中獲得很多有用的信息!我試過在android瀏覽器中進行'about:debug',看到調試選項出現。

我會補充說我正在調試的js可以在同一個Android設備上的最新Chrome上正常工作。

+0

你確定沒有人打?您在上面標記的行是在IIFE的開始 - 不知道是否會進行調試。另外,你有沒有嘗試在你的代碼中放入'debugger;'語句來查看這些工具是否會在那裏崩潰? –

+0

@anied該行在Chrome中進行調試。 '調試器;'是個好主意 - 我會嘗試。 –

+0

檢出http:// stackoverflow。com/questions/11788081/chrome-javascript-debugger-breakpoints-dont-do-anything –

回答

0

首先,它似乎有一堆語法錯誤,可能會阻止mustache.js從根本上執行 - 請參閱是否可以先關注這些錯誤。

我想嘗試在第9行下一行設置一個斷點,以查看該IIFE中是否有任何內容正在運行。

+0

這是一些JS在最新版本中正常工作Chrome在同一臺設備上 - 這些語法錯誤只出現在Android瀏覽器上。我試着在很多地方設置斷點......很確定如果他們能夠被擊中,我會擊中一個斷點。那個只是說明性的。 –

0

假設您在開發中使用模塊打包程序(例如Webpack)(基於屏幕截圖中的端口8080),很可能您嘗試調試的代碼是通過eval執行的。在這種情況下,你可以在devtools中看到它,它已經運行。

您可以在代碼中使用debugger語句,也可以在生產模式下運行 - 其中存在正在執行的實際腳本文件。在這兩種情況下,您都應該先連接遠程調試器,然後才能導航到您的頁面(或刷新它)。

+0

它只是8080'cos,它是https://www.npmjs.com/package/http-server的默認端口 –

0

我現在再次嘗試過同樣的事情,這次沒有遇到問題。不幸的是,我不能指出問題的真正原因,因爲我的開發機器正在死機,我正在運行一個新的Windows 10安裝程序,並且可能會安裝不同版本的Android SDK和ADB。手機和Android瀏覽器沒有改變。

反正,我現在可以設置和命中斷點爲我期望:

enter image description here

我還可以獲得更好的錯誤描述和行號:

enter image description here

FWIW時,唯一需要修復的問題是將一些'let'聲明更改爲'var'。

相關問題