如果我想调试应用程序,为什么“监视器将关闭以启用ADB集成”?

时间:2013-10-07 10:01:10

标签: android debugging adb

为什么我要调试应用程序总是出现消息“监视器将关闭以启用ADB集成”?

enter image description here

2 个答案:

答案 0 :(得分:0)

很晚但我将答案留作未来参考。当我打开DDMS时,我在android studio中面临同样的问题。我认为这个答案(https://stackoverflow.com/a/9258707/677096)会回复你的问题。

我只想补充一下,该消息告诉您Idea将停止使用它内部用于调试android的集成,因此它将允许您使用DDMS来调试代码。 DDMS是一个外部工具,因此为了使用它进行调试,您需要按照此处的说明配置IDE:http://developer.android.com/tools/debugging/debugging-projects-cmdline.html#start-debugging

我还没有这样做,但我认为你需要进行远程调试,如下所述:

http://www.jetbrains.com/idea/webhelp/run-debug-configuration-remote.html

答案 1 :(得分:0)

我正在使用Android工作室和我的猜测: 监视器(DDMS)和INTELIJ是冲突的,因为它们都使用adb(android调试桥)。这是因为单个调试器可以连接到单个VM(app)。

  

DDMS为设备上的每个VM分配一个调试端口。通常情况下,   DDMS为第一个可调试VM分配端口8600,在8601上分配下一个端口8600,   等等。当调试器连接到其中一个端口时,所有流量   从关联的VM转发到调试器。你只能   将单个调试器附加到单个端口...

尽管您应该能够使用DDMS提供的端口转发在单个VM(app)上使用多个调试器:

  

您只能将单个调试器附加到单个端口,但DDMS可以   处理多个附加的调试器。

     

默认情况下,DDMS还会侦听另一个调试端口DDMS   "基地港口" (默认为8700)。基本端口是端口转发器,   它可以接受来自任何调试端口的VM流量并将其转发到   端口8700上的调试器。这允许您将一个调试器连接到   端口8700,并调试设备上的所有VM。那是什么交通   转发由DDMS中当前选定的进程确定   设备视图。

您可以通过简单的调试器连接到DDMS,即jdb(java调试器),通过以下方式确保这是可能的:

jdb -attach localhost:8700

(如果DDMS在8700端口转发)

这就像我所知道的那样。

我无法发布超过2个链接,但引用来自官方Android开发者网站,标题为:

  

使用DDMS

一些链接:

adb overview

Useful blog record