无法打开选定的虚拟机调试端口(8700)。

32

我正在尝试使用Eclipse调试android源代码,按照以下链接中的说明进行:

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

我已经下载了源代码并成功编译。我按照上面的链接中的说明进行操作,一切正常,直到我运行ddms命令。此时,如果Eclipse正在运行,我会收到“无法打开选择的VM调试端口(8700)”的错误消息。如果我关闭Eclipse,则ddms可以正常运行,并且我可以在模拟器上看到进程。然而,如果我现在打开Eclipse,我会收到相同的错误消息。

无论我做什么,如果我尝试远程调试,它总是会失败,并显示“无法连接到远程VM”的错误消息。

有任何想法吗?

谢谢


请记住,您正在遵循的步骤允许您调试Android平台代码。有更简单的方法来调试应用程序代码。 - Tim Kryger
1
我最感兴趣的是更简单的方法。然而,我的目标是能够调试本地代码。我知道如何调试Java。 - John Gaby
1
这个过程无法帮助您调试本地代码。为此,您需要使用GDB并按照这些步骤进行操作。 - Tim Kryger
1
如果您正在使用Android Studio,您可以使用Android设备监视器,而DDMS是其中的一部分。 - Sam003
12个回答

0

我通过仅关闭Android Studio来解决问题,以便Eclipse可以获取DDMS。


0

当我在Ubuntu 16.04上执行$ANDROID_HOME/tools/monitor时,它显示:

无法打开所选VM调试端口(8700)。确保您没有运行DDMS或eclipse插件的另一个实例。如果它正在被其他东西使用,请在首选项中选择一个新的端口号。

我尝试了以下操作:

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

将基本本地调试器端口设置为“8601”选中“使用ADBHOST”的复选框,值应为127.0.0.1

但它仍然弹出对话框。

然后我做了以下操作:

gongzelong@gongzelong:~$ netstat -apn |grep 8700
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
tcp        0      0 127.0.0.1:8700          0.0.0.0:*               LISTEN      5044/java       
gongzelong@gongzelong:~$ kill -9 5044
gongzelong@gongzelong:~$ monitor

通过这样做,我的问题得到了解决。

不知道为什么,但对我来说它有效。


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