无法将Nexus 4连接到adb:未经授权

问题描述 投票:152回答:26

我有一个带有Android 4.3的Nexus 4,我正在尝试将设备连接到装有Windows 7 64bit的计算机。

我安装了最新的驱动程序和最新的adb版本。我想我几乎尝试了一切,但仍然得到以下消息:

C:\Program Files (x86)\Android\sdk\platform-tools>adb devices
List of devices attached
007667324ccb229b        unauthorized

这个错误的原因是什么?

android authorization adb nexus-4 android-4.2-jelly-bean
26个回答
263
投票

我有类似的情况。这是我做的:

尝试检查并取消选中设备中的USB调试选项。 (如果不工作,请尝试拔下/插上USB)

在某些时候,设备应该显示一个消息框,询问您是否授权计算机。单击“是”后,将授权该设备并连接该连接。


7
投票

这是我的步骤版本:

  1. 确保adb正在运行
  2. 在设备中,转到设置 - >开发人员选项 - >撤消USB调试权限
  3. 断开设备
  4. 在adb shell类型> adb kill-server中
  5. 在adb shell类型> adb start-server中
  6. 连接设备

如果adb shell显示空主机名,请重启设备


6
投票

在Windows 8.1上的Nexus 5上获得授权令牌时遇到同样的问题。我没有安装最新的adb驱动程序 - 这在设备管理器中可见。从这里下载了最新的ADB USB驱动程序:http://developer.android.com/sdk/win-usb.html

更新了设备管理器中的驱动程序,但启用/禁用USB调试和拔出/插入USB仍然无法正常工作。最后,一旦驱动程序更新,其他答案中提到的“adb kill-server”和“adb start-server”就会成功。


5
投票

有同样的问题。不确定这些步骤是否与我使用OS X设备的步骤相同,但您可以尝试:

  1. 将手机重新启动到恢复模式。
  2. 将其连接到您的计算机。
  3. 打开终端并输入: cd ~/.android adb push adbkey.pub /data/misc/adb/adb_keys
  4. 全部完成!只是adb shell reboot并感受到力量!

4
投票
  1. 确保adb是最新的
  2. 确保您使用的是谷歌USB驱动程序:http://developer.android.com/tools/extras/oem-usb.html
  3. 确保将ANDROID_SDK_HOME环境变量设置为正确的路径

1
投票

我重新安装了usb驱动程序并确保我没有使用USB 3.0端口。

然后我关闭了日食并杀死并重新启动了adb

立即通过电话提示允许计算机访问。接受后我重启了eclipse,现在我的Galaxy S3显示在设备设备管理器中。


1
投票

对我来说,一旦我禁用了MTP(在设置>存储>菜单> MTP中),我终于得到了RSA提示


1
投票

如果您使用adb通过网络,请尝试通过USB连接,反之亦然。这对我有用。一旦接受它,它总是在以后工作。


1
投票

这种旧帖子,在大多数情况下,我认为最受欢迎的答案将适用于人们。

在棒棒糖上的GPE HTC M8上我仍然遇到问题。以下步骤对我有用。

  1. 前往设置
  2. 点击存储
  3. 点击右上角的3个点
  4. 点击USB计算机连接
  5. UNCHECK MTP
  6. UNCHECK PTP
  7. 回到控制台,输入adb devices

现在你应该在手机上获得RSA弹出窗口。


1
投票

我的手机上没有弹出RSA指纹。

我不得不删除C:\Users\<userName>\.android\adbkeyadbkey.pub文件,然后杀死并重新启动adb服务器。

adb kill-server
adb start-server

我必须停止并重新启动调试器并在PTP模式下作为USB连接。

由于RSA授权密钥已存储在此路径中,因此终止并重新启动adb服务器无济于事。


0
投票

我能够按照此处列出的步骤解决这个问题:http://forum.xda-developers.com/showthread.php?t=2247471

delete the computers adb key: rm /data/misc/adb/adb_key on device 

(I have no idea if in case of multiple authorized computers the additional keys are in a new line of the file or if they are in new files. I have only 1 computer.)

stop all adb processes "killall adb" in linuxoids and "taskkill /IM adb.exe" in windows or simply the taskmanager in both.

restart the phone

toggle usb debugging off and on

connect

use adb

click authorize

57
投票

我没有删除任何键就解决了这个问题。这是如何做:

  1. 我的设备通过USB连接到我的电脑
  2. 我确保Eclipse和Android设备监视器没有运行。
  3. 在命令行提示符下键入:adb kill-server
  4. 在命令行提示符下键入:adb start-server
  5. 重新启动adb后,我的设备上有一个提示,要求我允许我进行授权。

0
投票

我不得不重新安装我的adb驱动程序以快速解决这个问题。为了恢复手机,我安装了“Universal Naked Driver”。我卸载了它并重新安装了驱动程序的android sdk。


0
投票

当我关闭我的Comodo Antivirus时,一切都恢复正常。这里建议的所有其他解决方案都是徒劳的。不知怎的,我想出了一个解决方案。

如果您使用的是Comodo Antivirus(版本6.3 /其他版本搜索类似选项),以下解决方案将对您有所帮助。

打开Comodo>任务>高级任务>打开高级设置>安全设置>防火墙>防火墙设置>高级:过滤环回流量(例如127.x.x.x,:: 1)

取消选中“过滤环回流量”选项,可防止adb正常工作。


0
投票

使用其他USB电缆。某些电缆可能没有连接所有引脚或诸如此类,并且当它们用于图像传输时,调试/ adb不起作用。

底线:我没骗你。适用于我的手机(adb工作)的电缆不适用于我的平板电脑 - 设备始终处于脱机状态或未经授权,平板电脑不会弹出对话框。我尝试了多次重启,设置,我在这个过程中疯狂,并诅咒血腥的Android。然后我不小心插上了平板电脑附带的电缆,然后突然工作了。我对Android的迷恋肯定不见了。多么愚蠢的垃圾。


0
投票

在我的备份软件将权限更改为我的用户目录后,它发生在我身上。我在文件资源管理器中打开它,它促使我设置权限,它解决了问题。

仅供参考:Android在“\ User \ .android”下有一个特殊目录如果您无法访问它,它将不会提示您。


0
投票

我的解决方案是从命令提示符运行adb devices,将其修改为adb应用程序。例如C:\ Android \ platform-tools \ adb devices。运行此命令返回以下* daemon not running. starting it now on port 5037 * *daemon started successfully *

然后我看到设备被列为未经授权的设备,拔掉USB插头,重新插入并提示输入RSA指纹。


0
投票

我面临同样的问题,我发现我使用的是简单的usb电缆,仅用于充电,而不是数据复制。用好USB线缆解决了我的问题!


0
投票

简单地重新插入就可以解决这个问题了......第一次插入设备时,权限对话框没有出现,第二次出现,现在一切都很好。


42
投票

Сhange从MTP到相机(用于Nexus 7)的USB连接模式,或者可能用于大容量存储或其他设备(用于其他设备)。此选项通常在Settings -> Storage下。然后再次连接设备,您将获得授权对话框。

众所周知,MTP会干扰USB调试 - 这两者在大多数旧设备上根本无法协同工作。 Nexus 7和许多新设备确实允许两者同时工作,但是这个特殊问题表明它并不是那么顺利。

奖金 - 当adb表现不佳时的清单:

  • adb kill-server紧随其后的是adb start-server
  • (在设备上)Settings -> Developer Options -> USB Debugging - 关闭然后打开
  • [Windows]确保你有合适的驱动程序(最好的选择是Universal Adb Driver by Koushik Dutta - 将处理任何设备)
  • [Windows]尝试关闭所有花哨的动态反恶意软件扫描程序/防火墙
  • [Linux]确保你在/etc/udev/rules.d/51-android.rules中有正确的UDEV规则(再次,通用解决方案:https://github.com/snowdream/51-android
  • [Linux]确保~/.android下的所有内容都归您所有,而不是root(和upvote this answer
  • 重启设备(是的,令人惊讶的是,这也是一个有效的措施)
  • (显然)重新插入电缆,尝试不同的电缆,不同的端口,移除任何扩展器电缆

24
投票

我认为当设备尝试显示要求许可的屏幕时出错,因此它不会出现。

这对我有用(命令在adb shell中给出):

  1. rm /data/misc/adb/adb_keys;
  2. 我通过电子邮件将公钥(adbkey.pub在〜/ .android /中)从我的电脑发送到我的设备;
  3. 调用stop adbd;
  4. cat adbkey.pub >> /data/misc/adb/adb_keys(授权给自己);
  5. start adbd(使用新密钥重新启动adb)。

17
投票

确保已启用USB调试后,请解锁手机并通过USB将其插入计算机。然后,系统会要求您授权与已连接的计算机进行通信。它还将显示计算机RSA密钥指纹。

接受它,你很高兴!


11
投票

1.)删除桌面计算机上的〜/ .android / adbkey

2.)运行命令“adb kill-server”

3.)运行命令“adb start-server”

现在应该提示您接受调试密钥。


9
投票

四个简单的步骤

./adb kill-server ./adb start-server

重新插入设备,解锁并接受新密钥


9
投票

与Flavio的答案(https://stackoverflow.com/a/18542792/1064996)类似,它与~/.android中的文件有关(在主机上,而不是手机上)。

我没有~/.android/adbkey,但我确实有~/.android/debug.keystore和我的整个~/.android目录由root拥有。我删除了密钥库文件,并将所有权更改为我(sudo chown -R $USER ~/.android),杀死了adb服务器并插入了我的手机,它运行正常。

这可能是所有权的事情。确保您在~/.android中具有读/写权限


8
投票

对于我的三星S3,我不得不进入手机上的开发者选项,取消选中“USB调试”复选框,然后重新勾选它。

然后会出现对话框,询问您是否要允许USB调试。

一旦我这样做,“adb devices”命令不再显示“未授权”作为我的设备名称。

(几个月后..)

实际上,连接我的Galaxy Tab S设备也是如此,菜单选项与Android 4.4.2略有不同:

© www.soinside.com 2019 - 2024. All rights reserved.