有没有一个真正的解决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模拟)
然后,打开Google 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应用程序 。
-
在Android设备上启用开发者模式(进入设置 – >关于电话 – >点击内部版本号的7倍)。
-
通过USB电缆将电脑与手机连接起来。
-
在您的计算机上午餐Chrome并导航至chrome:// inspect,然后单击要debugging的远程设备旁边的“Inspect”button(在“设备”选项卡下)。 或右键单击您的计算机上的Chrome浏览器 – >检查 – > Costumize和控制DevTools(3个垂直点 – 开发人员工具的右上angular) – >更多工具 – >远程设备 – >在设备左侧,点击通过USB连接到的设备 – >单击您想要的应用程序的“检查”button。
-
然后点击“控制台”,就可以像使用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/
android <= 4.0.4的设备需要添加插件https://www.npmjs.com/package/cordova-plugin-crosswalk-webview-pgb-adapt