新装的Android Studio经常adb连接不上手机,要么连接上了也一直弹用户确认的弹框,改好的代码无法运行,心情像吃了屎一样难受,故花费半天时间解决这个要命的问题,并记录一下出现的问题和解决方案。
adb 端口被占用
如果adb端口被占用则无论如何也无法连接上的,甚至无法启动adb。
解决方案:
- 确认是否有端口被占用,window:(netstat -ano | findstr “5037”),mac( lsof -i tcp:5037 ),查找出来后找到对应的pid直接kill掉
- 在macOS下打开活动监视器app,查看是否有多个adb进程,直接强制关闭,然后重启adb服务
- 切换adb端口,在系统变量中添加ANDROID_ADB_SERVER_PORT = 10086(值65536以下均可),然后重新启动adb服务
adb 端口未被占用
这种问题比较难处理,一般要靠玄学来试试看了。 解决方案一般就重启电脑+手机这样子。
其次这次我遇到的也是端口未被占用,但是怎么就连接不上adb,每次还都会弹出确认框,很烦人,使用kill-server
adb kill-server 失败日志
➜ adb kill-server
cannot connect to daemon at tcp:5037: Connection refused
adb start-server失败日志
➜ adb start-server
ADB server didn't ACK
Full server startup log: /var/folders/46/tx64ggwn611c69h1wr_1q7v80000gn/T//adb.501.log
Server had pid: 28821
--- adb starting (pid 28821) ---
adb I 08-11 15:13:57 28821 1936153 main.cpp:62] Android Debug Bridge version 1.0.41
adb I 08-11 15:13:57 28821 1936153 main.cpp:62] Version 30.0.3-6597393
adb I 08-11 15:13:57 28821 1936153 main.cpp:62] Installed as /Users/shuaige/Library/Android/sdk/platform-tools/adb
adb I 08-11 15:13:57 28821 1936153 main.cpp:62]
adb E 08-11 15:13:57 28821 1936156 usb_osx.cpp:161] Unable to create an interface plug-in (e00002be)
adb I 08-11 15:13:57 28821 1936156 usb_osx.cpp:310] reported max packet size for 802feab0 is 512
adb I 08-11 15:13:57 28821 1936153 auth.cpp:417] adb_auth_init...
adb I 08-11 15:13:57 28821 1936153 auth.cpp:152] loaded new key from '/Users/pumpkin/.android/adbkey' with fingerprint DE06F79B4AE11739823E7FB4FC8D791013224DBB61B9BEC18A3A72BE4DD9A939
adb I 08-11 15:13:57 28821 1936162 transport.cpp:296] 802feab0: write thread spawning
adb I 08-11 15:13:57 28821 1936161 transport.cpp:324] 802feab0: read thread spawning
* failed to start daemon
error: cannot connect to daemon
出现这种问题很是无奈,也找不到解决办法,最后更换了adb版本才解决。猜测下载的adb版本中的文件出现问题或者跟你自己的项目中起了反应🤔🤔。官方的adb下载地址(https://developer.android.google.cn/studio/command-line/adb?hl=zh_cn)中可以单独下载adb,也可以去网上查找对应的版本,但是请注意不是最新的版本就是适合你的。我的问题就是最新的版本出现问题。