【问题标题】:Android remote debugging for Phonegap app does not workPhonegap应用程序的Android远程调试不起作用
【发布时间】:2014-04-08 01:06:09
【问题描述】:

您好,我正在尝试通过 Chrome 在我的设备上调试我的 phonegap 应用程序我已关注所有 steps 并且我的手机已被 adb devices 命令识别,

然后我转到 chrome://inspect/#devices,我可以看到我的手机,但浏览器上出现了这条消息:

离线

0019C9AD7EF31F

待验证:请在设备上接受调试会话。

问题是我的手机中没有这样的消息,我有一个带有 kitkat 的 Sansumg Galaxy S2。我将版本从 4.1 更新到 4.4,因为我认为这是问题,但在升级到 4.4 后同样的问题。

以前有人遇到过这个问题吗?

【问题讨论】:

  • 你激活手机进行开发了吗?

标签: android google-chrome cordova google-chrome-devtools remote-debugging


【解决方案1】:

问题在于,远程调试过去仅适用于 Android 上的 Chrome 浏览器,但不适用于 phonegap 等应用程序内部的 webviews。但在 Android 4.4 (Kitkat) 和 Phonegap 3.3 中,现在支持此功能。

我在这里写了一篇关于它的博客文章:

http://adamwadeharris.com/remote-debugging-in-phonegap-with-chrome-devtools/

基本上,您需要在应用的主要 Java 文件中启用 webview 调试,并确保您的应用面向 API 版本 19 (Kitkat)。如果您没有配备 Kitkat 的设备,则可以使用模拟器。

以下是启用 webview 调试的方法:

在platforms/android/src/com/yourAppName/YourAppName.java 的其他导入语句下添加以下行

import android.os.Build;
import android.webkit.WebView;

并在 onCreate 方法中添加以下内容:

if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
  WebView.setWebContentsDebuggingEnabled(true);
}

【讨论】:

【解决方案2】:

这对我来说很好:

adb logcat CordovaActivity:V CordovaLog:V Cm
CordovaWebView:V IceCreamCordovaWebViewClient:V *:S

【讨论】:

  • 不确定您的答案是否提供了足够的详细信息...但我对 android dev 了解不多
【解决方案3】:

正如在某些 cmets 中已经说过的那样,自 cordova 3.3+ 和 android 4.4+ 以来,这是开箱即用的。您无需在 AndroidManifest.xml 中设置任何内容。

如果您使用cordova buildcordova run,默认构建模式将为“调试”。您还可以在生成的 apk 文件名中看到这一点,如下所示:

{app_name}-debug-unaligned.apk

在这种情况下,您只需要版本 32+ 的 Chrome 并选择 Chrome menu > Tools > Inspect Devices(当然,在您将应用程序部署到您的设备并打开 USB 调试之后)。

更多信息请看这里:https://developer.chrome.com/devtools/docs/remote-debugging

关于身份验证问题...当您第一次运行cordova android run 时,您的应用将部署到您的手机上,您需要确认身份验证对话框并勾选以记住您的选择。在此之后,您应该可以在 chrome 检查器中检查已部署的应用程序了。

【讨论】:

  • ...我从未见过安卓的身份验证对话框?应该在你的电脑上、你正在构建的地方还是在你的设备上?
  • @commonpike 身份验证对话框将出现在设备本身上。
【解决方案4】:

这似乎是手机上的一个错误。 我通过这样做来修复:

  1. 选择开发者选项
  2. 撤销 USB 调试授权
  3. 关闭再打开 USB 调试开关
  4. 连接到您的电脑
  5. 现在,只需接受两个权限对话框,它就可以在 AndroidStudio 和 Chrome 中正常工作。

【讨论】:

    【解决方案5】:

    如果您看到“待授权”持续闪烁,请尝试从设备中删除所有 Chrome 更新并降级到 Chrome v.33。似乎在最新的 Chrome 版本之一中出现了问题(Chrome v.44 出现问题)。以下是相关问题的链接:https://code.google.com/p/chromium/issues/detail?id=512150

    【讨论】:

      【解决方案6】:

      如果您使用的是 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" />
      

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

      【讨论】:

        【解决方案7】:

        这是另一种可能适用于某些人的解决方案

        很久以前,我使用 Phonegap Build 设置了证书签名,因此它会自动生成我的应用程序的“发布”版本。很久以前我都忘记了这个小细节。

        要让它为您提供应用程序的调试版本,您必须在 Phonegap Build 页面上的 android 下拉列表中专门选择 No key selected。然后当你下载它生成的 apk 时,它会有 appname-debug.apk 而不是 appname-release.apk。

        【讨论】:

          猜你喜欢
          • 2017-06-30
          • 1970-01-01
          • 1970-01-01
          • 2012-08-28
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-01-28
          • 1970-01-01
          相关资源
          最近更新 更多