2016-10-01 120 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'。