无法打开调试器端口:java.net.ConnectException "Connection refused"
Unable to open debugger port : java.net.ConnectException "Connection refused"
我正在使用 Android Studio v1.0.1 在 macOS Yosemite 10.10 中构建应用程序。当我尝试调试应用程序时,它安装正确但出现错误
Error running [app]: Unable to open debugger port : java.net.ConnectException "Connection refused"
当我运行 DDMS 时,它显示连接的设备和进程。问题发生在尝试在 Android Studio 中进行调试时。
在其他论坛中,我发现可能已经更改了调试器的端口,但这并没有解决我的问题。
您可以使用 netstat
实用程序来查看什么正在侦听哪些端口,如果您很快的话,还可以查看哪些尝试连接到哪些端口。这将有助于确保您的进程侦听调试端口并确认其编号。
您的调试端口可能正忙(正在被另一个进程使用)。
您可以使用以下命令终止与 ADB 调试端口(8601 或更高)关联的所有进程:
fuser -k 8601/tcp
更新:
在 OSX 下,lsof
应该代替 fuser
:
lsof -i :8601
我也遇到过这个问题。我认为我的解决方案可能对其他人有帮助,所以我 post 在这里。
首先,您应该知道什么会导致 "connection refused" 问题。通常有两种可能的原因:
- 这个特定的服务器没有启动。
- 服务器已启动但不接受任何连接。
关于您的问题,我建议您首先从您的 android 工作室启动 Android 设备监视器 (DDMS),并且 不要关闭它。
然后在DDMS中,您可以select您要调试的包和"Update Threads",现在您可以在您的工作室中调试这个应用程序了。
我的问题已通过以下步骤解决:
1.无效Caches/RestartAndroid工作室
2。重启模拟器。
为我完成。
重新启动我的Android工作室,为我工作。
我在使用真实设备时遇到了这个问题,我只是拔下 USB 数据线,然后重新插入,然后就可以了。如果是模拟器,我想重启模拟器就可以了。这是可行的,因为断开 device/emulator 会关闭所有连接的进程,然后您将启动所需的进程。
对我来说 none 上面的问题解决了,并且在我想出这个解决方案之前陷入了几个月。我在我的 mac machine 中有一个修改版本的 HOST 文件,比如将 IP 127.0.0.1 指向自定义域,如 www.mymac.com。一旦我恢复了它,我就可以调试了。是的!!!希望这对某些人有所帮助。
我还通过在我的 Mac 主机文件中使 127.0.0.1 不指向自定义域来解决这个问题。需要注意的一件事是,我有 2 个主机文件,一个在“/”中,一个在“/etc”中。实际使用了“/etc”中的一个。
这对我来说也是一个 /etc/hosts 文件问题,我更改了以下行(不知道为什么它之前可以工作...升级到 studio 3.1.3 后它停止工作了!)
127.0.1.1 localhost
至
127.0.0.1 localhost
对于 Windows 用户,您可以使用以下命令终止端口..
第 1 步:
打开 cmd(注意:您可能需要 运行 作为管理员,但这并不总是必要的),然后 运行 下面的命令:
netstat -ano | findstr :PORT_NUMBER
第 2 步:
Syntax:
taskkill /PID PORT_NUMBER /F
cmd:
taskkill /PID 5005 /F
我是我的案例 mackbookpro:
20:21 无法为调试器绑定到本地 8600
我发现 /ect/hosts 文件是空白的。
所以,我将默认主机配置添加到 /etc/hosts 文件,它工作正常。
127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost
我在物理设备上 运行 应用程序时遇到了同样的问题。
只需将您的 PC 和手机连接到同一个 WiFi 网络并禁用您 PC 的防火墙。它对我有用。
我正在使用 Android Studio v1.0.1 在 macOS Yosemite 10.10 中构建应用程序。当我尝试调试应用程序时,它安装正确但出现错误
Error running [app]: Unable to open debugger port : java.net.ConnectException "Connection refused"
当我运行 DDMS 时,它显示连接的设备和进程。问题发生在尝试在 Android Studio 中进行调试时。
在其他论坛中,我发现可能已经更改了调试器的端口,但这并没有解决我的问题。
您可以使用 netstat
实用程序来查看什么正在侦听哪些端口,如果您很快的话,还可以查看哪些尝试连接到哪些端口。这将有助于确保您的进程侦听调试端口并确认其编号。
您的调试端口可能正忙(正在被另一个进程使用)。 您可以使用以下命令终止与 ADB 调试端口(8601 或更高)关联的所有进程:
fuser -k 8601/tcp
更新:
在 OSX 下,lsof
应该代替 fuser
:
lsof -i :8601
我也遇到过这个问题。我认为我的解决方案可能对其他人有帮助,所以我 post 在这里。
首先,您应该知道什么会导致 "connection refused" 问题。通常有两种可能的原因:
- 这个特定的服务器没有启动。
- 服务器已启动但不接受任何连接。
关于您的问题,我建议您首先从您的 android 工作室启动 Android 设备监视器 (DDMS),并且 不要关闭它。
然后在DDMS中,您可以select您要调试的包和"Update Threads",现在您可以在您的工作室中调试这个应用程序了。
我的问题已通过以下步骤解决:
1.无效Caches/RestartAndroid工作室
2。重启模拟器。
为我完成。
重新启动我的Android工作室,为我工作。
我在使用真实设备时遇到了这个问题,我只是拔下 USB 数据线,然后重新插入,然后就可以了。如果是模拟器,我想重启模拟器就可以了。这是可行的,因为断开 device/emulator 会关闭所有连接的进程,然后您将启动所需的进程。
对我来说 none 上面的问题解决了,并且在我想出这个解决方案之前陷入了几个月。我在我的 mac machine 中有一个修改版本的 HOST 文件,比如将 IP 127.0.0.1 指向自定义域,如 www.mymac.com。一旦我恢复了它,我就可以调试了。是的!!!希望这对某些人有所帮助。
我还通过在我的 Mac 主机文件中使 127.0.0.1 不指向自定义域来解决这个问题。需要注意的一件事是,我有 2 个主机文件,一个在“/”中,一个在“/etc”中。实际使用了“/etc”中的一个。
这对我来说也是一个 /etc/hosts 文件问题,我更改了以下行(不知道为什么它之前可以工作...升级到 studio 3.1.3 后它停止工作了!)
127.0.1.1 localhost
至
127.0.0.1 localhost
对于 Windows 用户,您可以使用以下命令终止端口..
第 1 步:
打开 cmd(注意:您可能需要 运行 作为管理员,但这并不总是必要的),然后 运行 下面的命令:
netstat -ano | findstr :PORT_NUMBER
第 2 步:
Syntax:
taskkill /PID PORT_NUMBER /F
cmd:
taskkill /PID 5005 /F
我是我的案例 mackbookpro: 20:21 无法为调试器绑定到本地 8600
我发现 /ect/hosts 文件是空白的。 所以,我将默认主机配置添加到 /etc/hosts 文件,它工作正常。
127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost
我在物理设备上 运行 应用程序时遇到了同样的问题。
只需将您的 PC 和手机连接到同一个 WiFi 网络并禁用您 PC 的防火墙。它对我有用。