安卓版Google Chrome远程调试 - "localhost:9222"不可用

31
我正在按照远程调试的步骤进行操作(https://developers.google.com/chrome/mobile/docs/debugging)。但在第四步时,Chrome浏览器返回的是“该网页不可用”。
在Chrome for Android中,“启用USB Web调试”已被选中。
我的设备上已启用“USB调试”(根据Nexus S和CM9)。
“adb devices”命令显示为“设备号码 设备”。
“adb forward…” 命令的返回值为: * daemon未运行,现在在5037端口上启动它 * * daemon成功启动 *
我正在Windows 7上以管理员身份运行最新的ADB。

你尝试过在模拟器成功启动后使用 adb forward 命令吗? - WarrenFaith
是的,我再次运行了该命令。相同的结果。我切换到原始ROM(4.0.4)只是为了排除CM9。相同的结果。 - user1341697
9个回答

44

我发现在Chrome和我的设备上都需要启用USB调试。

  1. 移动版Chrome - 设置 > 开发者选项 > [x] 启用USB Web调试
  2. 设备 - 设置 > 开发者选项 > [x] USB调试
  3. 将设备连接到电脑
  4. 在电脑上启用端口转发

    C:\adb forward tcp:9222 localabstract:chrome_devtools_remote

  5. 在电脑上的Chrome中打开 http://localhost:9222


1
@enduro的步骤是正确的。在YouTube上有一个视频(在Google中推荐),但它展示了错误的步骤顺序。 - Alex Angelico
非常感谢!我忘记在我的设备上启用USB Web调试了。这让我的一天变得美好 :) - Tobias Oberrauch
6
这个回答好像已经过时了。现在移动版Chrome没有开发者工具了。相反,你需要在桌面版Chrome中前往 chrome:inspect - CorayThan
1
无法在我的设备(Motoe2 6.0.1)中找到选项1。 - Ashok

4
请问您使用的是Android上的Chrome的版本?打开“about:version”链接并提供“Google Chrome”和“Application”字段的值。
另外,请在启用USB Web调试后(按照文档中的步骤2),检查以下命令序列对您输出了什么结果:
adb root
adb shell cat /proc/net/unix | grep chrome_devtools_remote

这个想法是检查在打开USB Web调试后,设备上是否打开了远程调试套接字。


Chrome 19.0.1084.30(官方版本132762)beta-m我没有看到“应用程序”行。也许启动选项会有用:--flag-switches-begin --enable-experimental-extension-apis --enable-sync-tabs --flag-switches-end --flag-switches-begin --enable-experimental-extension-apis --enable-sync-tabs --flag-switches-end“adb root”返回: adbd不能在生产构建中以root身份运行由于我使用的是Windows 7,因此“adb shell…”无法正常工作。我已经切换回原始rom(4.0.4),只是为了排除CM9的影响。似乎这并没有什么区别。 - user1341697
我不太熟悉所有这些命令行的东西,但是grep不是Linux命令吗?(只是好奇,因为我也有Win7,它不认识这个命令) - Peter
@Peter grep是一个Linux命令,你可以在Cygwin(强烈推荐)中获取它,或者你可以使用愚蠢的Windows版本,名为find,其中命令将是adb shell cat /proc/net/unix | find "chrome_devtools_remote"。即使没有空格,引号也是必需的,因此有“愚蠢”的评论。 - boatcoder

4

您是否更改了本地主机名?如果是,则请尝试使用127.0.0.1:9222而不是localhost:9222


2
我有两个非常愚蠢的问题,阻止我正确地完成这个任务,也许我的经验可以帮助你。
1:在YouTube频道上最受欢迎的评论中解释如何完成此操作的“adb forward…”包含一些奇怪的字符(https://www.youtube.com/watch?feature=player_embedded&v=s4zpL4VBbuU)。如果像我一样,你粘贴到cmd中而没有仔细检查,服务器将会启动但服务将无法正常工作。确保你使用自己的adb路径来运行这条命令。
adb forward tcp:9222 localabstract:chrome_devtools_remote

2:ESET NOD32防病毒软件具有称为HIPS(基于主机的入侵预防系统)的功能,它不允许您在localhost:####上进行操作。

http://kb.eset.com/esetkb/index?page=content&id=SOLN2950

也许您的防病毒软件有类似的功能可以被停用吗?
希望这能帮助到某些人 ^_^

我坐在那里,复制了命令,想知道为什么它不起作用... :/ 谢谢 - Dominic

1
使用Chrome v41 (canary)版本,您无需再费心使用adb、下载或命令行。只需将手机插入电脑,将浏览器指向chrome://inspect,然后点击我的设备下方的“检查”链接,调试窗口就会打开并工作。(在手机的开发者选项中启用USB调试)我要补充的是,这个方法第一次就成功了,而我花了6个小时左右尝试使用Chrome v39加上platform tools sdk、adb等仍未成功。

0

试着在你的手机上下载Chrome浏览器的Android版本。然后再次在你的桌面上导航到localhost:9222 Android远程调试只适用于移动版Chrome浏览器。有些用户认为原生的Android浏览器就是Chrome,但实际上并不是。


0

远程调试功能需要进行一些小的检查。USB调试功能应该被关闭,只有在chrome(android)设置下选中USB调试选项。

此外,运行adb forward命令两次(完整命令及特定参数)。


关闭USB调试功能后,adb甚至无法识别我的手机,我为什么要这样做呢? - Peter

0

C:\adb forward tcp:9222 localabstract:chrome_devtools_remote

这个命令帮助我找到了系统问题的原因。我的电脑连接了多个设备,只有在移除所有设备,只连接一个必要的设备后才解决了问题。


0
我找到了解决这个问题的方法。我已经在教程中寻找了相同命令一整天。

https://developer.chrome.com/devtools/docs/contributing-legacy

"C:\Users\%username%\AppData\Local\Google\Chrome SxS\Application\chrome.exe" --remote-debugging-port=9222 --no-first-run --user-data-dir=C:\Users\%username%\chrome-dev-profile http://localhost:11002#http://localhost:8000/front_end/inspector.html

然后我可以在浏览器上使用 localhost: 9222。

现在我想评论答案以帮助某人。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接