解决ADB无法连接Android设备!原因:device unauthorized!

注意了!现在发车!

我掉的这个坑,实属天坑!并是不网上说的那么简单,重新插下USB线、重新开启USB调试、重启下Android设备就能解决的!!! 我恢复出厂设置、重新刷系统都不管用,就差最后一步USB调试授权,通俗的说就是Android设备不信任这台电脑,导致ADB一直无法连接到Android设备,心累。。。。

就是下面的这个窗口一直都没有弹出:

在这里插入图片描述

WTF!实在搞不懂为什么这个窗口没有弹出,换了两根USB线、重新开启了N遍USB调试、重启了N遍Android设备,甚至恢复了两次出厂设置,刷过一次系统,But ! 依旧无法解决这个问题。再说我就哭了。
在这里插入图片描述

问题

  • 输入adb devices,输出信息:
C:\Users\Administrator>adb devices
adb server version (31) doesn't match this client (41); killing...
could not read ok from ADB Server
* failed to start daemon
adb.exe: failed to check server version: cannot connect to daemon

是这样的:

C:\Users\Administrator>adb devices
adb server version (31) doesn't match this client (41); killing...
* daemon started successfully
List of devices attached
00000000000000000000    unauthorized
  • 输入adb shell,输出信息:
C:\Users\Administrator>adb shell
adb.exe: device unauthorized.
This adb server's $ADB_VENDOR_KEYS is not set
Try 'adb kill-server' if that seems wrong.
Otherwise check for a confirmation dialog on your device.

但是,我用360手机助手连接确实可以正常弹窗,正常连接:

在这里插入图片描述

360手机演示是这样的:

在这里插入图片描述

嗯哼。。。此事必有鬼!为什么360手机助手可以正常连接呢?用adb就不行呢?

而且我用另外一台电脑测试,也是可以正常弹窗进行USB调试授权,adb连接成功的。证明Android设备和数据线都是没有问题的,排除了硬件问题,剩下就软件问题。

解决办法

最核心的问题就是:This adb server's $ADB_VENDOR_KEYS is not set

找到~\.android目录,一般都是在C:\Users\Administrator\.android这个目录下,重点查看adb_usb.ini、adbkey和adbkey.pub这三个文件。

在这里插入图片描述

  • adb_usb.ini文件,里面是设备VID,比如我的是0x2207
  • adbkey文件,经过查看此文件,内容为空,这就是问题所在!
    一般adbkey文件内容是这样的:
-----BEGIN PRIVATE KEY-----
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCw+kLeonP1WFsl
AhmMhRn4l1GBIJbcB1gnXKZFwRonDjROYXi1RJDUfyrba0qkj295gCqswkkth7FF
4WDZxU6ELEpB4X2YNTZTFEhkoOSEZ7pEMd7lL7NxF7F8mEn7ONF0RZzYVzzcqEzV
KczkRUhkqlNgaYkB+ortuNGl7srSowz9lxoMFPMWeYBCekV65MzjCL1OiDXpwVrY
6e78C3CgGe5pZ8RpIjCUbmmzgurCHvFd6iO+mia/6O3ShCxsxx1sAUpXK4k1wlcQ
6ybahc5Mpyh6cf0l86j/OE95mYobikAFFUwNDb2NppL207/WcZPZLIrnAlSygKqc
gT5Gwm27AgMBAAECggEAJCQfVsbXJmHSTyb0H7mouZbxOoz0sd9AFd26SOFr3VDt
xpnqJB5p8zM7Bc8N0bhG/Al77YbJmeYtggdKF37PD3fZ/EU3uEcZnnK0a/RdZlqm
c7m5epU4sF41zStuZELQp011/8ok8Czgb+GW6YDqjUApQbWbmI9ZIr3M9nVi7wut
LUfv72ttzUuXixLLgNWkVQXk/JciFghHfLkoMpEY1a+sCDJht1D3A7Ceh/qwmObK
E1tWGAukRu6zHua+Mi7KXcKSza3P5xhzRhyEXILtRQIWURKhDdInvDcW8i7nA2Mt
x0/cCIWKYhH0IGSyd8ShU/VEeymbs4hpjUUikMCLVQKBgQDZdfO0PhJ5mMoMMHiV
B3UACESXH8REHFwCna5L0NPXAcSpd3zRZEzgjUHlrFcJ/n83ciIiZB+618kUk5f2
J914xWfwuszUIipCwVkLer+M+FXgikVgrJfR2cjpUDg6A2vSkUin/RkiAgDfxInX
G4l8DRyTtZrVVZc4QGFRJI2L7wKBgQDQV517pGFOnumsMskbaZLNI2j+jLhSJaVH
m+wiG5MLI0+fU9OE5SAFNyAUCoO7R/G6gt2e85f1ZclU3kpeK/NqqcaClnnvPLGF
qZADT32wCLnsm7wPOVym+/zxg4E29FYRXFEsIcCyKYrvpNmQMlmHp/m6/SURhu8b
ZApGyfKe9QKBgQCFDdGOMAiX0++UI7gz3zssSOLG4M3yqrN1eksh4mUrgc51rkF1
0PvkzSlLwPYEjG4EW9Yc2sw7QzqqV2A8Ycn10js1pOYcyca3z5uPFYzMUUoiOBgY
/aFq6ekvMEEm5d78GJ6vAoJ1N2qXf6ajMhseBtu8WPqim1sKNQIWZtogiwKBgHS/
tENWESVSjdVuPB39YkNMRYjnaF64M89WA9P1KchDCFpbShudnfzuMC6q2bj4DvCa
ZwCstonQeSryyi/NZ0FtVA1Xr4qtszkYlNgWEnOz4CRD/PV3CoGUkeDw9VbLQvPF
jMMzQt1TxESYV0ajwGHxclMjikMxHwp1XADhJ/GFAoGBAL5zFXPFPfzsjEZMeUWq
8iYEH7AngolstAet4fn+JPPlB+H1wjNH7VblkfRKfBL+BeHHjQEVs0WWrG3dxqtE
S9I2NZ4n+9D9VtyP7GanMycG6pjKgcXKeUOU9mx8LNpeR8Dpdmh6IYcYmPlW6oWQ
Yu5AzjXHQPAJByl/Pg6O2o2H
-----END PRIVATE KEY-----

  • adbkey.pub文件,经过查看此文件,内容也为空,这就是问题所在!
    一般adbkey.pub文件内容是这样的:
QAAAAI2wW267bcJGPoGcqoCyVALniizZk3HWv9P2kqaNvQ0NTBUFQIobipl5Tzj/qPMl/XF6KKdMzoXaJusQV8I1iStXSgFsHcdsLITS7ei/Jpq+I+pd8R7C6oKzaW6UMCJpxGdp7hmgcAv87unYWsHpNYhOvQjjzOR6RXpCgHkW8xQMGpf9DKPSyu6l0bjtivoBiWlgU6pkSEXkzCnVTKjcPFfYnEV00Tj7SZh8sRdxsy/l3jFEumeE5KBkSBRTNjWYfeFBSiyETsXZYOFFsYctScKsKoB5b4+kSmvbKn/UkES1eGFONA4nGsFFplwnWAfcliCBUZf4GYWMGQIlW1j1c6LeQvqwO9q00nASoQ0Ln7NccjKY7Kh6CcWAKsFHViaF6W3+R2aJ3Ir3a6Iy4rRen/9j6ehGKmITlR0HJoX1F5ET3CkCc2Lc3hJYegCHqIJNQi4jNkwR6FP+6xgCDaZXftf2kpySHyGRzHHCnp9ytAzK52CDXiIaUdaSlzbFzx6bVLfhpZY3k4xIKdLg0XYxUKLFqyhc9Jraz13qV/U+onE/BELaSvT5MhM4QrltXLVz5/+/l7YN2fWT/tVRzjyUem5iHiWbG0EKGtw1Zsl/zdypVDwQvH9kvvn68jr2FeSElU4GURI5QmKP/shna+Nxt0/GKx1X0q8vuwhNQv0ZCseK0NEplAEAAQA= @unknown

上面这两个文件非常重要,在Android设备确认授权USB调试之前,PC端需要先生成一个key,并将public key发给Android设备,Android设备才会弹出询问是否允许USB调试对话框

正常情况,重启adb或者重启电脑就能生成adbkey私钥和配套的adbkey_pub公钥,但是很明显我这个并没有生成,至于什么原因无法生成,不是很清楚。。。。。。。。

如何再次生成这两个文件呢?我这边用的方法是找到另外一台电脑,在电脑上面用adb连接上这个Android设备,此时~\.android目录会有上面那三个文件的,再将它们复制到自己的电脑上。如果你有更好的方法,可以给我留言评论,大家一起学习,感谢万分!

复制完上面的文件,需要重启一下adb:

adb kill-server
adb start-server

重启完adb之后,再将usb线插进电脑,此时应该会出现弹窗确认允许USB调试,问题解决了。

非常感谢你能看到这里,如果能够帮助到你是我的荣幸!

猜你喜欢

转载自blog.csdn.net/qq_36270361/article/details/108739423