2016-11-26 74 views
15

在手机上运行调试时,我无法在Android Studio中附加调试器。我正在使用运行Android 4.4.4的三星S4(但在各种Android版本上尝试过S5,S6,S7和Moto E手机)。超时当我尝试用下面的错误运行:无法在Android Studio中附加调试器 - localhost:8600 java.net.ConnectException

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

或者

未能打开调试端口本地主机:8600 java.net.ConnectException “连接被拒绝”

和App说:

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

的Android Studio版本:

的Android 2.2.2工作室
构建#AI-145.3360264,建立在二○一六年十月一十八日
JRE:1.8.0_112释放-B05 x86_64的
JVM:OpenJDK的64位服务器VM通过JetBrains的SRO

Mac版:

10.11.6(15G1004)

我可以成功连接并运行应用程序,我只是不能调试器附加当我运行>调试应用程序>选择连接的电话>好。

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

  1. 的Invalidate缓存/重新启动的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 
    

    工作室6282彼得125U的IPv4 0x973c7e31bda641ab 0t0 TCP 192.168.1.16:640 22-> IP-166-62-27-181.ip.secureserver。网:星号(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 
    
  5. 重新启动的Android工作室

  6. 重新启动计算机

  7. 更新的Java JDK从Oracle网站,但是,我不知道为何Android Studio仍然说:“JVM:由JetBrains sro提供的OpenJDK 64位服务器虚拟机”

  8. 完全卸载并重新安装Android的工作室 - 例如,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 
    
  11. 尝试取消选中运行>编辑配置>运行/调试配置>跳过安装APK如果没有改变

  12. 检查系统偏好设置>安全&隐私>防火墙 - 这是关闭

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

  14. 更新1:设为静音所有断点的Android工作室

对于我在上面添加的细节中可能出现的错误或有意义的内容,有没有其他想法?

+0

试着撤销usb调试auths。 – KERiii

+0

Thanks @ KERiii-I在电话上被吊销了,然后又重新启动了Android Studio - 它仍然会导致'Application 正在调试控制台中等待端口8100上的调试器...和发送WAIT chunk',我得到弹出窗口说'无法打开调试器端口(本地主机:8600):java.net。ConnectException“连接被拒绝”# – MrColes

+0

@MrColes你是否正在通过wifi进行调试? – PN10

回答

10

相当尴尬,但它看起来像前一段时间我已经进入了一个ip地址到我的/ etc/hosts文件中,以测试localhost,并且永远不会删除它。我发现另一篇文章说要检查以下是在/ etc/hosts中评论:

127.0.0.1  localhost 
255.255.255.255 broadcasthost 
::1    localhost 

在注释掉杂散线,调试器现在工作。鉴于我在该文件中有十几个其他IP(这样我就可以更容易地用一个友好名称来测试远程主机),但我一定没有注意到这个IP在底部。我觉得更简单的方法来验证这是否是问题或不就是ping本地主机并验证其解析为127.0.0.1的IP地址,例如,

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

大的意见和建议,由其他人在这里也谢谢!

+0

我也有调试器附加问题,并尝试了大多数解决方案。但类似于你,我也添加了一个IP到主机文件。但我仍然有以下几行127.0.0.1 localhost :: 1 ip6-localhost你对我有什么建议吗? – Anu

2

1.try清洁工程建设 - >清洁工程

2.do文件 - >的Invalidate /缓存重启 如果上面没有帮助你..

3.try改变数据线你用来连接你的手机。

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

+0

我安装了[Android wifi ADB插件](https://github.com/pedrovgs/AndroidWiFiADB#安装)通过首选项> Android Studio中的插件。我结束了与通过USB运行时相同的结果(“运行应用程序错误:无法打开调试程序端口(localhost:8600):java.net.ConnectException”操作超时“) – MrColes

+0

下面是输出从调试控制台:http://i.imgur.com/el5kCF8.png – MrColes

+0

@MrColes你有没有尝试用新的数据线? –

5

我刚刚经历过同样的问题。看起来好像Android Studio版本2.2对于非附加调试器有一些问题,例如您可以看到的例如herehere

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

  • 通过将运行你的应用程序中删除启动配置文件 - >编辑配置...和删除个人资料在那里。在删除配置文件后,请勿忘记点击确定按钮。 :)
  • 再次运行 - >编辑配置...,点击+按钮,选择Android应用启动配置文件并选择启动模块,从头开始创建新的启动配置文件。配置文件的其他默认值都很好。

希望这对你有帮助。

1

我也得到了同样的错误,这件事为我工作

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 * 
+0

是不是应该只是做到以下几点:“打印仿真器的adb状态/ “device” ''' 〜/ L/A/s/platform-tools> adb get-state device ''' – MrColes

+0

当然它会打印模拟器/设备状态,但是当守护进程没有运行时,它也会启动它,所以,在很多情况下,当守护进程本身加载失败并且尝试调试/运行时r应用程序然后它会显示相同的错误,你得到了'无法打开调试器端口:java.net.ConnectException“连接被拒绝”' – Shubham

0

Support for a true debug build。开发人员不再需要将android:debuggable属性添加到清单中的标记 - 构建工具会自动添加属性。在Eclipse/ADT中,所有增量构建被假定为调试构建,所以这些工具插入android:debuggable =“true”。导出已签名的发布版本时,这些工具不会添加该属性。在Ant中,ant调试命令会自动插入android:debuggable =“true”属性,而ant版本则不会。如果手动设置android:debuggable =“true”,那么ant release实际上会执行调试版本,而不是发布版本。

在我来说,我挣扎着这个问题,5小时,发现

minifyEnabled true是主要的罪魁祸首,从而改变 minifyEnabled false工作对我来说

我的应用程序的build.gradle文件看起来像

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

    } 
相关问题