有没有一个真正的解决scheme来debuggingcordova应用程序

我花了两天的时间试图弄清楚如何debugging使用Cordova 3.2创build的HTML5应用程序,并部署到Android 2.3设备。 我见过的所有文章/post提供了黑客而不是真正的解决scheme:(大多数时候,没有一个适用于我的情况;debuggingCSS应用程序中的CSS样式和Angularjs代码..

到目前为止我testing了;

debug.phonegap.com

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

Weinre

大多数的文章,我发现指向过时的Github存储库,countain Jar文件..但它没有find:(

边检查

它的工作原理,并显示我正在浏览的移动电脑内的网页。但问题是,它使用一些其他集成的浏览器(或模拟器)比运行phonegap应用程序; 所以结果不准确。

Chrome模拟器

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

梦想的解决scheme

完美的解决scheme将是对Google Chrome(桌面)的扩展,使您能够将桌面浏览器切换到Android 2.3平台上的同一个; 没有仿真没有黑客,只有浏览器本身与networking工具包v 530。

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

有什么build议么?

对于Android:

您只需要在您的android设备中启用“USB远程debugging器”并使用USB电缆即可。 然后在设备中打开您的应用程序。 Chrome浏览器会检测到远程浏览器,并且可以以与在本地使用Chrome浏览器时相同的方式查看控制台。

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

如果你的应用程序在设备上崩溃,你只需要在浏览器中看到控制台的日志,看看会发生什么。 您也可以使用与本地浏览器相同的方式添加function,更改variables和重写function。

阅读这篇文章 ,了解更多关于采取步骤的信息。

这只适用于运行Android 4.4+的设备。

对于iOS:

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

1.在您的iOS设备上,转至设置> Safari>高级> Web Inspector以启用Web Inspector

2.在iOS设备上打开Safari。

3.通过USB连接到您的电脑。

4.在电脑上打开Safari。

5.在Safari的菜单中,转到开发并查找设备的名称。

6.select您要debugging的选项卡。

在这里输入图像描述

注意

这个答案是旧的(2014年1月),从那以后,许多新的debugging解决scheme都可用。


我终于搞定了! 使用weinre和cordova(没有Phonegap版本),并为未来的开发者,谁可能面临同样的问题,省了麻烦,我做了一个YouTube教程 ;)

如果您可以使用Android 4.4+设备,那么即使在应用的内部WebView上也可以使用Chrome远程debugging。 这是一个比Weinre更好的debugging器,但关键是使用最近的Android版本。

最近的cordovabuild立自动启用这种types的debugging,只要它是一个debugging版本(closures – 释放构build)。

对我来说最好的是附加Chromedebugging器。

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

然后,打开Goog​​le Chrome浏览器并转到chrome://inspect/

你会看到一个正在运行的应用程序列表。 你的应用程序应该在那里。 点击“检查”。

一个新的窗口将打开与开发人员的工具。 在那里你可以点击“控制台”来检查错误

如果您的应用程序运行的是Cordova 3.3+,而您的设备运行的是Android 4.4+,则可以使用Chrome远程Webviewdebugging来debugging您的Cordova应用程序。

要做到这一点,您必须首先在手机上启用USBdebugging。

然后打开“检查设备”选项卡。 在Chrome中,转至设置 > 更多工具 > 检查设备

如果在设备连接到计算机时启动应用程序,则Webview应显示在设备列表中。 点击你的Webview的“Inspect”链接,你的Webview应该出现一个debugging工具。

这里是一篇文章,充分解释如何做到这一点: http : //geeklearning.io/apache-cordova-and-remote-debugging-on-android/

你尝试过“GapDebug”吗? 免费。

它似乎集成了Safari Webkit Inspector和Chrome开发工具的版本,以在OS X和Windows上提供集成的debugging体验。

另一种select是Visual Studio,它提供了debuggingCordova应用程序的预发布支持 :

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

现在微软已经免费发布了Visual Studio Community版本 ,您可以免费试用这个版本 。 您将需要为Apache Cordova下载Visual Studio和Visual Studio Tools 。

据我所知,从2.2到4.3的Android平台的cordova应用程序中真正的debugging的唯一生产工具是jshybugger 。 Weinre是一名督察,而不是debugging者。 JsHybuggertesting你的代码,允许你在android webview中进行debugging。

只是想补充一点,你可以使用Genymotiondebuggingandroid应用程序。 这是更快的方式,股票的Android模拟器。

您可以使用英特尔XDK IDE在仿真器上或实际设备上进行开发和debugging

我还发现了cordova的Visual Studio 2015 RC工具非常好,它的纹波模拟器

如果使用phonegap构build,则可以select启用debugging。


对于本地构build,您可以使用npm安装weinre: https ://npmjs.org/package/weinre

和weinre文档的链接: http ://people.apache.org/~pmuellr/weinre/docs/latest/


有一个叫做远程debugging的东西,但是我不太了解,你可以看看Raymond Camden的文章: http : //www.raymondcamden.com/index.cfm/2014/1/2/Apache-cordova-33和远程debugging换的Android

chrome远程debugging的文档: https : //developers.google.com/chrome-developer-tools/docs/remote-debugging (如果我理解正确,您需要一个Chrome浏览器的Chrome浏览器)也许最接近你的梦想解?

在Android 4.4+ w / SDK上安装:

 adb logcat chromium:D SystemWebViewClient:D \*:S 

您也可以使用Chrome浏览器进行debugging

我创build一个.bat在debugging模式下打开铬

 cd C:\Program Files (x86)\Google\Chrome\Application chrome.exe "file:///C:\Users\***.html" --allow-file-access-from-files --disable-web-security 

您可以使用“Chrome远程debugging”,通过USB电缆从计算机上远程debugging安装在手机上的Cordova Android应用程序 (您也可以远程点击Web应用程序,就如同从计算机上查看Web应用程序一样)。 您也可以通过这种方式debugging在Stock Android浏览器或Android版Chrome浏览器中查看的Web应用程序

  1. 在Android设备上启用开发者模式(进入设置 – >关于电话 – >点击内部版本号的7倍)。

  2. 通过USB电缆将电脑与手机连接起来。

  3. 在您的计算机上午餐Chrome并导航至chrome:// inspect,然后单击要debugging的远程设备旁边的“Inspect”button(在“设备”选项卡下)。 右键单击您的计算机上的Chrome浏览器 – >检查 – > Costumize和控制DevTools(3个垂直点 – 开发人员工具的右上angular) – >更多工具 – >远程设备 – >在设备左侧,点击通过USB连接到的设备 – >单击您想要的应用程序的“检查”button。

  4. 然后点击“控制台”,就可以像使用Chrome开发人员工具的普通Web应用程序一样debuggingJavaScript。

我爱过你! 如何使用它:

首先,把你的index.html (确保app.settings.debugUrl在此之前设置):

  <!-- Weinre debugging --> <script type="text/javascript"> if (app.settings.debugUrl) { document.addEventListener("DOMContentLoaded", function(event) { var s = document.createElement("script") s.setAttribute("src", app.settings.debugUrl+"/target/target-script-min.js#anonymous") document.getElementsByTagName("body")[0].appendChild(s) }); } </script> 

然后:

  • 安装: sudo npm install -g weinre
  • 运行: weinre --boundHost -all-
  • 在浏览器上打开: http:// localhost:8080 / client /#anonymous
  • 手表目标会在您打开应用程序时出现

基于http://www.broken-links.com/2013/06/28/remote-debugging-with-weinre/

如果您使用的是Cordova 3.3或更高版本,并且您的设备运行的Android 4.4或更高版本 ,则可以使用“使用Chrome在Android上进行远程debugging”。 完整的说明在这里:

https://developer.chrome.com/devtools/docs/remote-debugging

综上所述:

  • 使用USB电缆将设备插入台式电脑
  • 在您的设备上启用USBdebugging(在我的设备上,这是在设置>更多>开发人员选项> USBdebugging)

或者 ,如果您使用的是Cordova 3.3+,而没有4.4的物理设备,那么您可以使用一个使用Android 4.4+的模拟器,通过模拟器在台式计算机上运行应用程序。

  • 在设备或仿真器上运行您的Cordova应用程序
  • 在台式机上的Chrome中,在地址栏中inputchrome:// inspect /#devices
  • 您的设备/仿真器将与连接到您计算机的任何其他可识别设备一起显示,在您的设备下,将会显示设备/仿真器上运行的Cordova“WebView”(基本上是您的Cordova应用程序)cordova的工作方式是基本上在你的设备/模拟器上创build一个“浏览器”窗口,其中有一个“WebView”,它是运行的HTML / JavaScript应用程序)
  • 点击“WebView”部分下的“检查”链接,您会看到列出的设备/模拟器。 这将带来Chrome开发人员工具,现在允许您debugging您的应用程序。
  • selectChrome开发人员工具的“来源”标签,查看设备/模拟器上当前运行的Cordova应用的JavaScript。 您可以在JavaScript中添加断点,以便您debugging代码。
  • 此外,您可以使用“控制台”选项卡查看任何错误(将以红色显示),或者在控制台的底部,您将看到一个“>”提示符。 在这里你可以input任何想要检查当前值的variables或对象(例如DOM对象),并显示值。

这是使用Phonegap Build的解决scheme。 将以下内容添加到您的config.xml,以便能够使用Chrome远程Webviewdebugging进行检查。

首先,确保你的widget标签包含xmlns:android =“http://schemas.android.com/apk/res/android”;

 <widget xmlns="http://www.w3.org/ns/widgets" xmlns:gap="http://phonegap.com/ns/1.0" xmlns:android="http://schemas.android.com/apk/res/android" id="me.app.id" version="1.0.0"> 

然后添加以下内容

 <gap:config-file platform="android" parent="/manifest"> <application android:debuggable="true" /> </gap:config-file> 

它适用于Nexus 5,Phonegap 3.7.0。

 <preference name="phonegap-version" value="3.7.0" /> 

在Phonegap Build中构build应用程序,安装APK,将手机连接到USB,在手机上启用USBdebugging,然后访问chrome:// inspect。

来源: https : //www.genuitec.com/products/gapdebug/learning-center/configuration/

使用Android设备监视器

Android设备监视器来与您以前将安装的android sdk包。 在设备监视器中,您可以看到整个设备日志,exception情况,所有消息。 这对debugging应用程序崩溃或任何其他此类问题很有用。 要运行这个,请转到您的android sdk“/ var / android-sdk-linux / tools”中的工具/文件夹。 然后运行以下

 chmod +x monitor ./monitor 

如果你在windows上,直接打开monitor.exe文件。 在“LogCat”下面有一个标签,您可以看到所有与设备有关的信息。 你会看到所有的消息,包括Android设备例外,这是不可见的铬检查设备。 请确保使用logcat选项卡中的“+”号创build筛选器,以便仅查看您的应用程序的消息。

资料来源: http : //excellencenodejsblog.com/phonegap-debugging-your-android-application/