是否有真正的解决方案来调试cordova应用程序

num*_*web 124 debugging android emulation mobile-webkit cordova

我花了两天时间试图找出如何调试我使用Cordova 3.2创建并部署到Android 2.3设备的HTML5应用程序.我见过的所有文章/帖子都提供了黑客而不是真正的解决方案:(大部分时间,它们都不适合我的情况;调试我的应用程序中的CSS样式和Angularjs代码..

到目前为止我测试了;

debug.phonegap.com

我将脚本注入index.html文件,然后访问debug.phonegap.com中生成的URL,但没有任何反应; 只有一个空白页面.

Weinre

我发现的大多数文章指向过时的Github存储库,它计算了一个Jar文件..但是没有找到:(

边缘检查

它工作并显示我在移动设备上的PC上浏览的网页..但问题是它使用了一些其他集成的浏览器(或模拟器)而不是运行phonegap应用程序的浏览器.所以结果不准确.

Chrome模拟器

与边缘检查相同; 它不允许查看Android 2.3附带的真实web-kit v530.

梦想的解决方案

完美的解决方案是谷歌Chrome(桌面)的扩展,使您能够将桌面浏览器切换到Android 2.3平台中的同一个浏览器.没有模拟没有黑客,只有浏览器本身与web-kit v 530.

不幸的是,这样的解决方案不存在:(或者我错了?

有什么建议?

Neo*_*ixs 131

FOR ANDROID:

您只需在Android设备中启用"USB远程调试器"并使用USB电缆插入即可.然后在设备中打开您的应用程序.Chrome会检测远程浏览器,您可以使用与本地使用Chrome时相同的方式查看控制台.

使用此链接:chrome://inspect/#devices在Chrome浏览器中(您必须将其粘贴到导航栏中).

如果您的应用程序在设备中崩溃,您只需要在浏览器中查看控制台的日志,看看会发生什么.您还可以使用与本地浏览器相同的方式添加功能,更改变量和覆盖功能.

阅读本文以获取有关要采取的步骤的更多信息.

这仅适用于运行Android 4.4+的设备.

对于iOS:

使用Safari for iOS,请按照下列步骤操作:

1.在iOS设备中,转到"设置">"Safari">"高级">"Web检查器"以启用Web Inspector

2.在iOS设备上打开Safari.

3.通过USB将其连接到计算机.

4.在计算机上打开Safari.

5.在Safari的菜单中,转到"开发",然后查找设备的名称.

6.选择要调试的选项卡.

在此输入图像描述

  • 我可以在计算机上看到控制台和我的应用程序镀铬,而我的智能手机通过USB连接.很酷的解决方案. (3认同)
  • 答案提出了错误问题的解决方案 - 问题不在于调试浏览器,而在于调试WebView.这些略有不同,因为许多沮丧的用户感到困惑,因为他们的WebViews显示他们的应用程序,不会出现在`chrome:// inspect`中. (2认同)

num*_*web 76

注意

这个答案很老(2014年1月),从那时起,许多新的调试解决方案都可用.


我终于搞定了!使用weinre和cordova(没有Phonegap构建)并为未来的开发者节省麻烦,他们可能面临同样的问题,我制作了一个YouTube教程 ;)

  • 为Phonegap抵制+1. (39认同)
  • ...如何将YouTube视频链接作为可接受的答案? (15认同)
  • Weinre不是调试器,它只允许DOM检查,你不能调试js甚至监视控制台消息 (8认同)
  • 与所有stackoverflow答案一样 - 对解决方案的链接(无论是否由作者制作)都不满意.保持解决方案在这里,而不是在外面可能有一天消失. (8认同)
  • @Meekohi他制作了视频:) (2认同)

rdc*_*ers 55

如果您可以使用Android 4.4+设备,那么即使在应用程序的内部WebView上也可以使用Chrome远程调试.这是比Weinre好得多的调试器,但关键是使用最新的Android版本.

最近的Cordova构建自动启用这种调试,只要它是一个调试版本(它在--release build中关闭).

  • 回覆.这个,我发现[这个链接](http://java.dzone.com/articles/debugging-android)很有用.相反,使用Chrome导航到`chrome:// inspect`并确保选中"Discover USB Devices".这将显示连接设备中的任何可调试WebView. (9认同)

Jos*_*osé 31

对我来说最好的方法是附加Chrome调试器.

要做到这一点,请在模拟器或设备中运行您的应用程序(使用$ cordova模拟)

然后,打开谷歌浏览器并转到 chrome://inspect/

您将看到一个包含正在运行的应用的列表.你的应用应该在那里.点击"检查".

将使用开发人员工具打开一个新窗口.在那里,您可以单击"控制台"以检查错误

  • 请仔细检查您的答案是否符合OP的条件.Chrome调试程序仅适用于Android 4.4及更高版本. (7认同)

小智 20

如果您的应用运行的是Cordova 3.3+并且您的设备运行的是Android 4.4+,那么您可以使用Chrome远程Webview调试来调试您的Cordova应用.

为此,您必须首先在手机上启用USB调试.

然后打开"检查设备"选项卡.在Chrome中,转到"设置" >" 更多工具" >" 检查设备".

如果您在设备连接到计算机时启动应用程序,则Webview应显示在设备列表中.单击Webview的"Inspect"链接,将显示Webview的调试工具.

这篇文章完全解释了如何做到这一点:http://geeklearning.io/apache-cordova-and-remote-debugging-on-android/


小智 7

你试过'GapDebug'吗?免费.

它似乎集成了Safari Webkit Inspector和Chrome Dev Tools的版本,以在OS X和Windows上提供集成的调试体验.


Jos*_*osh 7

另一个选项是Visual Studio,它支持调试Cordova应用程序:

统一调试经验.跨平台开发通常需要不同的工具来调试每个设备,仿真器或模拟器.每次切换设备时,不同的工具意味着不同的工作流程和生产力损失.使用Visual Studio,您可以为所有部署目标使用相同的世界级调试工具,包括Windows,Android模拟器,附加的Android设备,iOS设备和模拟器以及Apache Ripple模拟器.

既然Microsoft已免费发布Visual Studio社区版,您可以免费试用.您需要同时下载Visual Studio和Apache Cordova的Visual Studio工具.


sgi*_*eno 5

据我所知,用于Android平台2.2至4.3的Cordova应用程序中实际调试的唯一有效工具是jshybugger.Weinre是一名检查员,而不是调试员.JsHybugger为您的代码提供工具,允许您在android WebView中进行调试.


Vic*_*r P 5

只想添加你可以使用Genymotion调试Android应用程序.这比股票Android模拟器更快.