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)上使用相同的手机在调试中运行该应用程序.
我从几个小时的调试和在线搜索中尝试过各种方法:
无效缓存/重启Android工作室
检查端口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 $
运行工具> Android> Android设备监视器 - 它显示我的设备,但我在尝试调试应用程序时无法运行Android设备监视器,它说,"监视器将关闭以启用ADB集成.继续?"我在这里找不到任何有用的东西.
搜索并终止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)重启Android工作室
重启我的电脑
从Oracle网站更新Java JDK - 但是,我不确定为什么Android Studio仍然会说,"JVM:JetBrains sro的OpenJDK 64位服务器VM"
完全卸载并重新安装android studio - 例如,https://stackoverflow.com/a/18458893/376489 - 奇怪的是,我认为这适用于调试器的一次运行,然后不再...
尝试运行>将调试器附加到Android进程 - 这没有帮助
试过跑步:
~/Library/Android/sdk/platform-tools/adb kill-server &&
~/Library/Android/sdk/platform-tools/adb start-server
Run Code Online (Sandbox Code Playgroud)尝试取消选中运行>编辑配置>运行/调试配置>如果APK未更改,请跳过安装
检查系统首选项>安全和隐私>防火墙 - 此功能已关闭
更新1:尝试撤消手机上的权限以及重新启动它
更新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)
非常感谢来自其他人的好评和建议,谢谢!
归档时间: |
|
查看次数: |
12191 次 |
最近记录: |