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

MrC*_*les 22 debugging android 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"连接被拒绝"

和应用程序说:

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

Android Studio版本:

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

Mac版:

10.11.6(15G1004)

我可以成功连接并运行应用程序,当我执行Run> Debug App>选择已连接的手机>确定时,我无法让调试器连接.

我已经能够在其他计算机(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
    
    Run Code Online (Sandbox Code Playgroud)

    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工作室无法附加后调试器$ 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
    
    Run Code Online (Sandbox Code Playgroud)
  5. 重启Android工作室

  6. 重启我的电脑

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

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

  9. 尝试运行>将调试器附加到Android进程 - 这没有帮助

  10. 试过跑步:

    ~/Library/Android/sdk/platform-tools/adb kill-server &&
     ~/Library/Android/sdk/platform-tools/adb start-server
    
    Run Code Online (Sandbox Code Playgroud)
  11. 尝试取消选中运行>编辑配置>运行/调试配置>如果APK未更改,请跳过安装

  12. 检查系统首选项>安全和隐私>防火墙 - 此功能已关闭

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

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

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

MrC*_*les 24

相当尴尬,但它看起来像前一段时间我已经输入一个IP地址到我的/ etc/hosts文件来测试一些东西localhost,从来没有删除它.我在另一篇文章中发现了一条评论说要检查以下是否在你的/ etc/hosts中:

127.0.0.1       localhost
255.255.255.255 broadcasthost
::1             localhost
Run Code Online (Sandbox Code Playgroud)

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

$ ping localhost
PING localhost (127.0.0.1): 56 data bytes
Run Code Online (Sandbox Code Playgroud)

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

  • 你不是唯一一个:)通过在/ etc/hosts中读取这个答案找到了同样的问题,与另一个ip和localhost的dublicate.删除了那条线,让一切恢复正常. (2认同)

Nan*_*oka 9

我刚刚经历过同样的问题.看起来好像Android Studio 2.2在非附加调试器方面存在一些问题,例如你可以在这里这里看到.

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

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

希望这对你也有帮助.


Bal*_* F. 5

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

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