无法在Android Studio中附加调试器 - localhost:8600 java.net.ConnectException

时间:2016-11-26 20:58:39

标签: android debugging android-studio

在手机上运行调试时,我无法在Android Studio中附加调试器。

我目前正在使用三星S4,运行Android 4.4.4(但在各种Android版本上尝试过S5,S6,S7和Moto E手机)。当我尝试使用以下任一错误运行它时会超时:

  

I / System.out:发送WAIT块   W / ActivityThread:应用程序正在等待端口8100上的调试器...

或者

  

无法打开调试器端口localhost:8600 java.net.ConnectException“连接被拒绝”

和App说:

  

等待调试器
  应用程序(进程)正在等待调试器附加   强制关闭

Android Studio版本:

  

Android Studio 2.2.2
  Build#AI-145.3360264,建于2016年10月18日
  JRE:1.8.0_112-release-b05 x86_64
  JVM:JetBrains s.r.o的OpenJDK 64位服务器VM

Mac版:

  

10.11.6(15G1004)

我可以成功连接并运行应用程序,当我运行>时,我无法让调试器附加调试应用程序>选择已连接的手机>行。

我已经能够在其他计算机(包括Windows和Mac)上使用相同的手机在调试中运行该应用程序。

我从几个小时的调试和在线搜索中尝试过各种方法:

  1. 使缓存无效/重启Android工作室

  2. 检查端口8100,8600,8601等上运行的其他内容,当我从bash运行以下命令时,没有任何内容返回:

    $ # while Android studio is trying to attach the debugger
    $ lsof -i :8100
    $ lsof -i :8600
    COMMAND  PID  USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
    

    studio 6282 peter 125u IPv4 0x973c7e31bda641ab 0t0 TCP 192.168.1.16:64022->ip-166-62-27-181.ip.secureserver.net:asterix(SYN_SENT)     $ lsof -i:8601     $     Android Studio未能附加调试器后的$#     $ lsof -i:8100     $ lsof -i:8600     $ lsof -i:8601     $

  3. 运行工具> Android> Android设备监视器 - 它显示我的设备,但我在尝试调试应用程序时无法运行Android设备监视器,它说,“监视器将关闭以启用ADB集成。继续?“我在这里找不到任何有用的东西。

  4. 搜索并终止adb进程

    ps aux | egrep '(adb|java)'
    ... then doing `kill <pid>` or `kill -9 <pid>` if necessary for the found ones
    
  5. 重启Android工作室

  6. 重新启动计算机

  7. 从Oracle网站更新Java JDK - 但是,我不确定为什么Android Studio仍然会说,“JVM:JetBrains s.r.o的OpenJDK 64位服务器VM”

  8. 完全卸载并重新安装android studio - 例如https://stackoverflow.com/a/18458893/376489 - 奇怪的是,我认为这适用于调试器的一次运行,然后不再...

  9. 尝试运行&gt;将调试程序附加到Android进程 - 这没有帮助

  10. 试着跑步:

    ~/Library/Android/sdk/platform-tools/adb kill-server &&
     ~/Library/Android/sdk/platform-tools/adb start-server
    
  11. 尝试取消选中“运行”&gt;编辑配置&gt;运行/调试配置&gt;如果APK未更改,请跳过安装

  12. 检查系统偏好设置&gt;安全与安全隐私&gt;防火墙 - 已关闭

  13. 更新1:尝试撤消手机上的权限并重新启动

  14. 更新1:默认所有断点Android Studio

  15. 对于我在上面添加的细节中可能出现的问题或任何有意义的内容,还有其他想法吗?

12 个答案:

答案 0 :(得分:22)

相当令人尴尬,但看起来就像前段时间我已经在我的/ etc / hosts文件中输入了一个ip地址来测试localhost的内容并且从未将其删除。我在另一篇文章中发现了一条评论说要检查以下是否在你的/ etc / hosts中:

127.0.0.1       localhost
255.255.255.255 broadcasthost
::1             localhost

在评论出该虚假线路时,调试器现在正在工作。鉴于我在该文件中有十几个其他IP(因此我可以更容易地测试具有友好名称的远程主机),我一定不会在底部注意到这个。我认为验证这是否是问题的一种更加万无一失的方法是ping localhost并验证它是否解析为127.0.0.1的ip地址,例如,

$ ping localhost
PING localhost (127.0.0.1): 56 data bytes

来自其他人的好评和建议,谢谢!

答案 1 :(得分:6)

我刚刚经历过同样的问题。看起来好像Android Studio 2.2在非附加调试器方面存在一些问题,例如herehere

在我的情况下,以下帮助:

  • 转到“运行” - &gt;删除应用的启动配置文件编辑配置...并删除其中的配置文件。删除配置文件后,请不要忘记按“确定”按钮。 :)
  • 再次转到Run - &gt;从头开始创建新的启动配置文件编辑配置...,点击+按钮,选择Android应用启动配置文件并选择启动模块。配置文件的其他默认值就好了。

希望这也有助于你。

答案 2 :(得分:2)

1.try清洁项目Build-&gt; clean project

2.do file-&gt; Invalidate / cache restart 如果上面没有帮助你...

3.更改用于连接手机的数据线。

如果上面没有任何帮助,请安装Android wifi ADB插件并尝试通过wifi进行调试。

答案 3 :(得分:2)

我也有同样的错误,这件事对我有用

1. Open Android Studio -> Terminal
2. Change directory to $Android SDK Path$\platform-tools
3. Write command adb get-state and hit enter.

然后你会得到这个输出

* daemon not running. starting it now on port 5037 *
* daemon started successfully *

答案 4 :(得分:2)

  
    

Support for a true debug build。开发人员不再需要将android:debuggable属性添加到清单中的标记 - 构建工具会自动添加属性。在Eclipse / ADT中,假设所有增量构建都是调试版本,因此工具插入android:debuggable =&#34; true&#34;。导出已签名的发布版本时,工具不会添加该属性。在Ant中,一个ant debug命令会自动插入android:debuggable =&#34; true&#34;属性,而ant释放不。如果android:debuggable =&#34; true&#34;手动设置,然后ant release实际上会进行调试构建,而不是发布版本。

  

在我的情况下,我在5小时内解决了这个问题并发现了

minifyEnabled true是罪魁祸首所以改变 minifyEnabled false为我工作

我的app build.gradle文件看起来像

 buildTypes {
        debug {
            signingConfig signingConfigs.debug
            minifyEnabled false
            shrinkResources true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }

    }

答案 5 :(得分:1)

Android Studio 3.3出现了相反的问题,试图调试连接Wi-Fi的手机。

在Android Studio中选择设备后,我收到以下消息:

  

运行“ app”时出错:无法打开调试器端口(localhost:8600):   java.net.ConnectException“连接被拒绝:连接”

我的网络上也启用了IPV-6。

问题是默认情况下,“ localhost”在我的计算机上解析为:: 1,但是ADB故意将其明确绑定到127.0.0.1。我碰巧知道这一点,因为我花了整整一天的时间试图使ADB连接到在远程计算机上运行的仿真器(不幸的是,不是从Android 4.4开始。

要解决此问题,请将以下行添加到\ windows \ system32 \ drivers \ etc \ hosts:

  

127.0.0.1本地主机

答案 6 :(得分:1)

我正在使用真实设备。只需删除设备上的应用程序,然后从Android Studio运行即可解决此问题。

Android Studio似乎无法覆盖手机上已经存在的文件。

答案 7 :(得分:0)

尝试在终端上使用以下命令-

  1. adb kill-server

  2. adb启动服务器

效果很好。

答案 8 :(得分:0)

只需不使用我的Google Pixel 1st gen并使用我的新诺基亚7 plus即可解决此问题:)。

答案 9 :(得分:0)

这个问题使我疯狂了大约2周。最终为我解决的是在调试器进程选择窗口中将“ auto”更改为“ java”,如下所示: enter image description here

答案 10 :(得分:0)

调试本机代码时有一个 known issue with Android Studio 4.2.1 on Ubuntu 20.04

有一种简单的方法可以检查您是否担心,只需运行以下不应以错误结束的命令行:

${android-studio-dir}/bin/lldb/bin/LLDBFrontend

答案 11 :(得分:-2)

起初,我尝试了上述所有方法,但没有帮助。 我有两台具有相同设置的计算机。 但是在一个方面却犯了另一个错误。 给我一个想法,它可能是“硬件”问题。 我使用USB3.0将USB切换到其他插槽,并使用了短电缆和 哇,它开始工作了。 我建议USB2.0(轮询)存在一些延迟,因此进程开始不同步。