我花了两天时间试图弄清楚如何调试我使用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。
梦想解决方案
完美的解决方案是Google Chrome(桌面版)的扩展,使您可以将桌面浏览器切换到Android 2.3平台中的同一个浏览器。没有仿真没有黑客,只有浏览器本身使用web-kit v 530。
不幸的是,这样的解决方案不存在:(或者我错了?
有什么建议吗?
答案 0 :(得分:120)
FOR ANDROID:
您只需在Android设备中启用“USB远程调试器”并使用USB线插入即可。然后在设备中打开您的应用程序。 Chrome会检测远程浏览器,您可以使用与本地使用Chrome时相同的方式查看控制台。
在Chrome浏览器中使用此链接:chrome://inspect/#devices
(您必须将其粘贴到导航栏中)。
如果您的应用在设备中崩溃,您只需在浏览器中查看控制台的日志,看看会发生什么。您还可以使用与使用本地浏览器相同的方式添加功能,更改变量和覆盖功能。
阅读this article,了解有关要采取的步骤的更多信息。
这仅适用于运行Android 4.4 +的设备。
FOR iOS:
使用Safari for iOS,请按照以下步骤操作:
1.在您的iOS设备中,转到设置> Safari>高级> Web Inspector启用Web Inspector
2.在iOS设备上打开Safari。
3.通过USB将其连接到您的计算机。
4.在计算机上打开Safari。
5.在Safari的菜单中,转到“开发”,然后查找设备的名称。
6.选择要调试的选项卡。
答案 1 :(得分:75)
<强>注意强>
这个答案已经过时(2014年1月),从那时起可以使用许多新的调试解决方案。
我终于搞定了!使用weinre和cordova(没有Phonegap构建)并为未来的开发人员节省麻烦,他们可能面临同样的问题,我做了YouTube tutorial;)
答案 2 :(得分:55)
如果您可以使用Android 4.4+设备,那么即使在应用程序的内部WebView上也可以使用Chrome远程调试。它是比Weinre好得多的调试器,但关键是使用最新的Android版本。
最近的Cordova版本会自动启用这种调试,只要它是一个调试版本(它在--release版本中关闭)。
答案 3 :(得分:30)
最适合我的是附加Chrome调试器。
要做到这一点,请在模拟器或设备中运行您的应用程序(使用$ cordova模拟)
然后,打开Google Chrome并转到chrome://inspect/
您会看到一个包含正在运行的应用的列表。你的应用应该在那里。点击“检查”。
将使用开发人员工具打开一个新窗口。在那里你可以点击“console”来检查错误
答案 4 :(得分:20)
如果您的应用运行的是Cordova 3.3+并且您的设备运行的是Android 4.4+,那么您可以使用 Chrome远程Webview调试来调试您的Cordova应用。
为了能够做到这一点,您必须首先在手机上启用USB调试。
然后打开“检查设备”选项卡。在Chrome中,转到设置&gt; 更多工具&gt; 检查设备。
如果您的设备在连接到计算机时启动了应用,则Webview应显示在设备列表中。单击Webview的“Inspect”链接,将显示Webview的调试工具。
以下是一篇完整解释如何操作的文章:http://geeklearning.io/apache-cordova-and-remote-debugging-on-android/
答案 5 :(得分:7)
你试过'GapDebug'吗?它是免费的。
它似乎集成了Safari Webkit Inspector和Chrome Dev Tools的版本,可在OS X和Windows上提供集成的调试体验。
答案 6 :(得分:7)
另一个选项是Visual Studio,它有prerelease support for debugging Cordova apps:
统一调试体验。经常跨平台开发 需要一个不同的工具来调试每个设备,模拟器或 模拟器。不同的工具意味着不同的工作流程和丢失 每次切换设备时的工作效率。使用Visual Studio,您 可以为所有部署使用相同的世界级调试工具 目标,包括Windows,Android模拟器,附加Android 设备,iOS设备和模拟器以及Apache Ripple模拟器。
现在Microsoft发布了Visual Studio Community edition for free,您可以免费试用。您需要同时下载Visual Studio和Visual Studio Tools for Apache Cordova。
答案 7 :(得分:5)
据我所知,用于Android平台2.2至4.3的Cordova应用程序中实际调试的唯一有效工具是jshybugger。 Weinre是一名检查员,而不是调试员。 JsHybugger为你的代码提供工具,允许你在android WebView中进行调试。
答案 8 :(得分:5)
只想添加您可以使用Genymotion调试Android应用程序。它比股票Android模拟器更快。
答案 9 :(得分:4)
您可以使用英特尔XDK IDE在仿真器或实际设备上进行开发和调试
我还发现了用于cordova的Visual Studio 2015 RC工具非常好,带有它的纹波仿真器
答案 10 :(得分:3)
如果您使用phonegap构建,则可以选择启用调试。
对于本地版本,您可以使用npm:https://npmjs.org/package/weinre
安装weinre指向weinre文档的链接:http://people.apache.org/~pmuellr/weinre/docs/latest/
还有一些名为chrome远程调试的东西,但我对此并不了解,你可以看一下Raymond Camden的文章:http://www.raymondcamden.com/index.cfm/2014/1/2/Apache-Cordova-33-and-Remote-Debugging-for-Android
Chrome远程调试的文档:https://developers.google.com/chrome-developer-tools/docs/remote-debugging (如果我理解正确你需要一个带有chrome作为默认浏览器的android设备) 也许最接近你的梦想解决方案?
答案 11 :(得分:3)
安装了Android 4.4+ w / SDK:
adb logcat chromium:D SystemWebViewClient:D \*:S
答案 12 :(得分:2)
您可以通过USB电缆从计算机远程调试手机上安装的Cordova Android应用程序(您也可以远程点击Web应用程序,就像您正在查看网络应用程序一样compueter)“Chrome远程调试”。 您还可以通过这种方式调试在Stock Android浏览器中查看的Web应用程序或Android上的Chrome 。
在您的Android设备上启用开发者模式(转到设置 - &gt;关于手机 - &gt;点按内置版码7x)。
通过USB线将电脑与手机连接。
在计算机上使用Chrome浏览器并导航至chrome:// inspect并单击要调试的远程设备旁边的“Inspect”按钮(在“Devices”选项卡下)。 或右键单击计算机上的Chrome内部 - &gt;检查 - &gt; Costumize和控制DevTools(3个垂直点 - 开发人员工具的右上角) - &gt;更多工具 - &gt;远程设备 - &gt;在左侧的设备下,单击您通过USB连接的设备 - &gt;单击所需应用程序的“检查”按钮。
然后点击“控制台”,您可以像使用Chrome开发者工具的普通网络应用程序一样调试JavaScript。
答案 13 :(得分:2)
使用Android设备监视器
Android设备监视器带有你之前安装的android sdk软件包。在设备监视器中,您可以看到整个设备日志,异常,消息。这对于调试应用程序崩溃或任何其他此类问题非常有用。要运行它,请转到android sdk“/ var / android-sdk-linux / tools”中的tools /文件夹。然后运行以下
chmod +x monitor
./monitor
如果您在Windows上,请直接打开monitor.exe文件。 “LogCat”下方有一个标签,您可以在其中看到所有与设备相关的消息。您将在此处看到所有消息,包括不可见的chrome检查设备的Android设备异常。请务必使用logcat选项卡中的“+”符号创建过滤器,以便只显示应用程序的消息。
来源:http://excellencenodejsblog.com/phonegap-debugging-your-android-application/
答案 14 :(得分:2)
以下是使用Phonegap Build的解决方案。将以下内容添加到config.xml中,以便能够使用Chrome远程Webview调试进行检查。
首先,请确保您的小部件代码包含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中构建应用程序,安装APK,将手机连接到USB,在手机上启用USB调试,然后访问chrome:// inspect。
来源: https://www.genuitec.com/products/gapdebug/learning-center/configuration/
答案 15 :(得分:2)
如果您使用Cordova 3.3或更高版本并且您的设备运行Android 4.4或更高版本,则可以使用“在Android上使用Chrome进行远程调试”。完整说明如下:
https://developer.chrome.com/devtools/docs/remote-debugging
总结:
或 ,如果您使用的是Cordova 3.3+并且没有4.4的物理设备,则可以使用运行Android 4.4+的模拟器来运行应用程序通过模拟器,在您的台式计算机上。
答案 16 :(得分:2)
您还可以使用chrome调试您的html5应用
我创建一个.bat来在调试模式下打开chrome
cd C:\Program Files (x86)\Google\Chrome\Application
chrome.exe "file:///C:\Users\***.html" --allow-file-access-from-files --disable-web-security
答案 17 :(得分:1)
android&lt; = 4.0.4的设备需要添加插件https://www.npmjs.com/package/cordova-plugin-crosswalk-webview-pgb-adapt
答案 18 :(得分:1)
我爱过我们!如何使用它:
首先,加上你的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://www.broken-links.com/2013/06/28/remote-debugging-with-weinre/