解决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

上記の2つのファイルは非常に重要です。AndroidデバイスがUSBデバッグの承認を確認する前に、PCはキーを生成してAndroidデバイスに公開キーを送信する必要があり、AndroidデバイスはUSBデバッグを許可するかどうかを尋ねるダイアログボックスをポップアップします

通常重启adb或者重启电脑就能生成adbkey私钥和配套的adbkey_pub公钥は生成していないのは明らかですが、生成できなかった理由はあまりわかりません。

これらの2つのファイルを再度生成する方法は?ここで使用する方法は、別のコンピューターを見つけてAndroidデバイスをコンピューター上のadbに接続する方法です。この時点で、~\.androidディレクトリには上記の3つのファイルが含まれていて、コンピューターにコピーします。もっと良い方法があれば、コメントを残してください。みんなで一緒に学ぶことができます。ありがとうございました!

上記のファイルをコピーしたら、adbを再起動する必要があります。

adb kill-server
adb start-server

adbを再起動したら、USBケーブルをコンピューターに接続します。USBデバッグが許可されていることを確認するポップアップウィンドウが表示され、問題が解決されます。

こちらをご覧いただき、誠にありがとうございます。

おすすめ

転載: blog.csdn.net/qq_36270361/article/details/108739423