Android 有没有真正的解决方案来调试cordova应用程序
我花了两天的时间试图找出如何调试我用Cordova3.2创建并部署到安卓2.3设备上的HTML5应用程序。我看到的所有文章/帖子都提供了一些技巧,而不是真正的解决方案:(大多数时候,它们都不适用于我的情况;调试我应用程序中的css样式和Angularjs代码。) 到目前为止,我进行了测试 debug.phonegap.com 我将脚本注入Android 有没有真正的解决方案来调试cordova应用程序,android,debugging,cordova,emulation,mobile-webkit,Android,Debugging,Cordova,Emulation,Mobile Webkit,我花了两天的时间试图找出如何调试我用Cordova3.2创建并部署到安卓2.3设备上的HTML5应用程序。我看到的所有文章/帖子都提供了一些技巧,而不是真正的解决方案:(大多数时候,它们都不适用于我的情况;调试我应用程序中的css样式和Angularjs代码。) 到目前为止,我进行了测试 debug.phonegap.com 我将脚本注入index.html文件,然后访问debug.phonegap.com中生成的URL,但什么都没有发生;只有一个空白页面 Weinre 我找到的大多数文章都指向
index.html
文件,然后访问debug.phonegap.com中生成的URL,但什么都没有发生;只有一个空白页面
Weinre
我找到的大多数文章都指向过时的Github存储库,该存储库包含一个Jar文件。但没有找到:(
边缘检查
它可以工作并显示我在手机内的PC上浏览的网页。但问题是,它使用的是其他集成浏览器(或模拟器),而不是运行phonegap应用程序的浏览器;因此结果并不准确
Chrome emulator
与Edge inspect相同;它不允许查看Android 2.3附带的真实web工具包v530
梦想解决方案
完美的解决方案是对Google Chrome(桌面)的扩展,使您能够将桌面浏览器切换到Android 2.3平台中的相同浏览器;无需仿真,无需黑客攻击,只需使用web kit v 530的浏览器本身
不幸的是,这样的解决方案并不存在:(或者我错了
有什么建议吗?如果您使用phonegap构建,则有一个启用调试的选项
对于本地版本,您可以使用npm安装weinre: 以及weinre文档的链接:
还有一种叫做chrome远程调试的东西,但我对它了解不多,你可以看看Raymond Camden的文章: chrome远程调试的文档: (如果我理解正确,您需要一台android设备,默认浏览器为chrome)
也许是最接近你梦想的解决方案?注意 这个答案是旧的(2014年1月)。从那时起,许多新的调试解决方案都可用
我终于成功了!使用weinre和cordova(无Phonegap构建)并为未来可能面临同样问题的开发者节省麻烦,我做了一个;)你也可以用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
如果你可以使用Android 4.4+设备,那么你甚至可以在应用程序的内部WebView上使用Chrome远程调试。这是一个比Weinre好得多的调试器,但关键是使用最新的Android版本
最近的Cordova版本自动启用这种调试,只要它是调试版本(在--release版本中关闭).据我所知,Cordova apps for Android平台2.2到4.3版中真正调试的唯一有效工具是。是一个检查器,而不是调试器。JsHybugger插入您的代码,允许您在Android WebView中进行调试。只想补充一点,您可以使用它调试Android应用程序。这比Android e股票快得多混血儿。你试过了吗?它是免费的
它似乎集成了Safari Webkit Inspector和Chrome开发工具的版本,以提供在OS X和Windows上的集成调试体验。另一个选项是Visual Studio,它具有: 统一调试经验。经常进行跨平台开发 需要不同的工具来调试每个设备、模拟器或 不同的工具意味着不同的工作流程和损失 每次切换设备时都能提高工作效率。使用Visual Studio,您可以 可以对所有部署使用相同的世界级调试工具 目标,包括Windows、Android仿真器、附加的Android 设备、iOS设备和模拟器,以及Apache Ripple emulator
现在Microsoft已经发布了,您可以免费试用。您需要同时下载Visual Studio和。对我来说最好的方法是附加Chrome调试器 为此,请在模拟器或设备中运行应用程序(使用$cordova SIMULATE) 然后,打开Google Chrome并转到
chrome://inspect/
您将看到一个包含正在运行的应用程序的列表。您的应用程序应该在该列表中。单击“检查”
将打开一个新窗口,其中包含开发人员工具。在该窗口中,您可以单击“控制台”检查错误我喜欢weinre!如何使用它: 首先,打开
index.html
(确保在此之前设置了app.settings.debugUrl
):
if(app.settings.debugUrl){
addEventListener(“DOMContentLoaded”,函数(事件){
var s=document.createElement(“脚本”)
s、 setAttribute(“src”,app.settings.debugUrl+“/target/target-script-min.js#anonymous”)
document.getElementsByTagName(“正文”)[0]。appendChild
});
}
然后:
- 安装:
sudo npm安装-g weinre
- 运行:
weinre--boundHost-all-
- 在浏览器上打开:
- 打开应用程序时,观察目标显示
基于如果您的应用程序运行的是Cordova 3.3+,而您的设备运行的是Android 4.4+,那么您可以使用Chrome Remote Webview Debugging来调试您的Cordova应用程序 要做到这一点,您必须首先在手机上启用USB调试 然后打开“检查设备”选项卡。在Chrome中,转到设置更多工具检查设备 如果在设备连接到计算机时在设备上启动应用程序,则网络视图应显示在设备列表中。单击网络视图的“检查”链接,网络视图的调试工具应出现
这里有一篇文章详细解释了如何做到这一点:适用于ANDROID: 您只需在android设备中启用“USB远程调试器”并用USB电缆插入即可。然后打开y
<!-- 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>
adb logcat chromium:D SystemWebViewClient:D \*:S
<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>
<preference name="phonegap-version" value="3.7.0" />
chmod +x monitor
./monitor