您好我正在尝试通过Chrome在我的设备上调试我的phonegap应用程序我已经跟踪了所有steps并且我的手机被adb devices命令识别,
然后我转到chrome:// inspect /#devices,我可以看到我的手机,但此消息显示在浏览器上:
离线
待认证:请接受设备上的调试会话。
事情是我的手机里没有这样的信息,我有一个带有kitkat的Sansumg Galaxy S2。我将版本从4.1更新到4.4,因为我认为这是问题,但在升级到4.4同样的问题之后。
之前有没有人遇到过这个问题?
答案 0 :(得分:17)
问题在于,远程调试过去只适用于Android上的Chrome浏览器,但不适用于像phonegap一样的应用内的网页浏览。但是对于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语句下添加以下行
import android.os.Build;
import android.webkit.WebView;
在onCreate方法中添加以下内容:
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
WebView.setWebContentsDebuggingEnabled(true);
}
答案 1 :(得分:4)
正如在一些评论中已经说过的那样,自从cordova 3.3+和android 4.4+以来,这是开箱即用的。您无需在AndroidManifest.xml中设置任何内容。
如果使用cordova build
或cordova run
,默认构建模式将为“debug”。您也可以在生成的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检查器中检查已部署的应用程序。
答案 2 :(得分:4)
这似乎是手机上的一个错误。 我通过这样做来解决:
答案 3 :(得分:2)
如果你看到"等待授权"保持闪烁尝试从设备中删除所有Chrome更新并降级到Chrome v.33。似乎在最新的Chrome版本之一中出现了问题(Chrome v.44遇到了问题)。以下是相关问题的链接:https://code.google.com/p/chromium/issues/detail?id=512150
答案 4 :(得分:1)
这是另一种可能适用于某些人的解决方案
很久以前我用Phonegap Build设置了证书签名,因此它自动生成了我的应用程序的“发布”版本。很久以前我忘记了这个小细节。
要让它为您提供应用程序的调试版本,您必须在Phonegap Build页面的android下拉列表中专门选择未选择密钥。然后当你下载它生成的apk时,它将有appname-debug.apk而不是appname-release.apk。
答案 5 :(得分:-1)
这对我很好:
adb logcat CordovaActivity:V CordovaLog:V Cm
CordovaWebView:V IceCreamCordovaWebViewClient:V *:S