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

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 我找到的大多数文章都指向

我花了两天的时间试图找出如何调试我用Cordova3.2创建并部署到安卓2.3设备上的HTML5应用程序。我看到的所有文章/帖子都提供了一些技巧,而不是真正的解决方案:(大多数时候,它们都不适用于我的情况;调试我应用程序中的css样式和Angularjs代码。)

到目前为止,我进行了测试

debug.phonegap.com

我将脚本注入
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