无法打开选定的VM调试端口(8700)

Joh*_*aby 31 eclipse android remote-debugging

我正在尝试使用Eclipse调试android源代码,遵循以下指令:

http://source.android.com/using-eclipse

我已下载了源代码,并将其构建完成.我按照上面链接中的说明进行操作,一切正常,直到我运行ddms命令.此时,如果Eclipse正在运行,我会收到错误"无法打开所选VM调试端口(8700)".如果我关闭Eclipse,那么ddms运行没有问题,我可以在模拟器上运行.但是,如果我现在打开Eclipse,我会得到同样的错误.

在任何情况下,无论我做什么,如果我尝试远程调试,它总是会失败并且"无法连接到远程VM".

有任何想法吗?

谢谢

Tim*_*ger 19

看起来你有两个问题:

  1. 您正在尝试两次运行DDMS. 您不需要运行DDMS的独立版本,因为它的版本集成在Eclipse中作为Android插件的一部分.如果您在Eclipse中更改为DDMS透视图,我相信您会发现所有相同的功能都可用.

  2. 您还没有告诉DDMS您要在localhost:8700上调试哪个VM. 在尝试建立远程调试连接之前,必须转到DDMS透视图并单击system_process(或您要调试的任何进程).


小智 16

搞砸的Windows主机文件是C:\WINDOWS\system32\drivers\etc,它应包含以下行:

127.0.0.1 localhost
Run Code Online (Sandbox Code Playgroud)

如果这不起作用,那么尝试在Eclipse中进行以下更改.

在窗口 - >首选项 - > Android - > DDMS下:

  • 将Base本地调试器端口设置为"8601"
  • 选中"使用ADBHOST"框,该值应该是 127.0.0.1

  • 这看起来像是能够在android studio和eclipse中运行应用程序,但不能同时运行 (2认同)

小智 7

我通过任务管理器结束进程"adb.exe",然后通过Windows-> Preference重新加载SDK解决了这个问题.我在Win 7 64位上运行Eclipse Indigo.


aen*_*enw 5

我也有这个问题(Windows 7),即使我的 /Windows/system32/drivers/etc/hosts 文件已经127.0.0.1 localhost 在里面了。

我尝试在 eclipse Preferences 中更改 ADBHOST 信息和端口,但这没有做任何事情。

netstat -b显示“127.0.0.1”作为 adb 和模拟器的源地址,但总是将我的机器主机名列为“外国地址”。凭直觉,我尝试在我的机器没有连接到任何网络(没有 WiFi,没有插入任何东西)的情况下进行调试……并且成功了!(DDMS 能够连接到模拟设备上的 VM,我能够很好地调试。)

我认为 DDMS 和/或 adb 发送的消息不会留在我的本地机器上(它们被发送到我的本地路由器)。(这只是一个猜测;我不知道如何最终测试它。) IOW,环回没有按预期工作。

由于我的本地主机中已经有 127.0.0.1,我将我机器的本地子网地址添加到我的主机文件中,猜测 DDMS/adb 可能正在使用该地址(与 127.0.0.1 相比)。这似乎解决了我的问题。

所以现在我的主机文件有这些行:

127.0.0.1 本地主机
::1 本地主机
192.168.1.102 本地主机

(我机器的本地 IPv4 地址是192.168.1.102。你可以用ipconfig命令检查你的。)

(我遇到了一些关于如何为处理环回的 Windows 设置虚拟网络适配器的网页,例如设置 Microsoft 环回适配器(来自 Oracle Distilled),但还没有时间考虑它是否可行也可以解决所有这些问题。)


sid*_*_09 5

我通过打开Windows任务管理器并关闭进程“ adb.exe”解决了该问题。然后关闭日食并重新打开它。它将正常启动,没有任何错误。