无法将 Nexus 4 连接到 adb:未经授权
Posted
技术标签:
【中文标题】无法将 Nexus 4 连接到 adb:未经授权【英文标题】:Can't connect Nexus 4 to adb: unauthorized 【发布时间】:2013-08-03 10:00:01 【问题描述】:我有一台装有 android 4.3 的 Nexus 4,我正在尝试将设备连接到一台装有 Windows 7 64 位的计算机。
我安装了最新的驱动程序和最新的adb
版本。我想我几乎尝试了所有方法,但仍然收到以下消息:
C:\Program Files (x86)\Android\sdk\platform-tools>adb devices
List of devices attached
007667324ccb229b unauthorized
这个错误的原因是什么?
【问题讨论】:
【参考方案1】:我可以按照此处列出的步骤解决这个问题: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
【讨论】:
没有工作...重要的事情要提一下:我尝试将设备连接到其他带有 windows xp 的计算机,并且没有问题。所以我想问题不在于 USB 电缆或设备本身,但是,我找不到任何原因表明问题在于计算机......谢谢! 必须使用“taskkill /F /IM adb.exe”——“/F”是强制的。当我在没有“/F”的情况下尝试它时,它告诉我它无法终止,我必须使用“/F”。【参考方案2】:我也有类似的情况。这是我所做的:
尝试选中和取消选中设备中的 USB 调试选项。 (如果不起作用,请尝试拔下/插入 USB)
在某些时候,设备应该会显示一个消息框,询问您是否授权计算机。点击yes后,设备被授权,连接被hook。
【讨论】:
是的,我下载了 USB 驱动程序,启用了 USB 调试,并且遇到了这个问题。我不得不拔下/重新插入 S4,然后我在 S4 中得到“授权”提示。现在 adb devices 显示“设备”,我可以运行我的应用程序了。 直到我通过取消选中所有媒体和设备的“使用自动播放”来禁用 Windows 自动播放后,我才收到此授权消息。" 1.拔下,删除所有通过的允许设备,重新插入,检查remember
,2。? 3. 利润!
我只需要等待大约一分钟,授权框就出现在设备上。
还要检查echo %ANDROID_SDK_HOME%
是否设置为正确的路径【参考方案3】:
我认为设备尝试显示请求权限的屏幕时出现错误,因此没有出现。
这对我有用(命令在adb shell
中给出):
rm /data/misc/adb/adb_keys
;
我通过电子邮件将公钥(~/.android/ 中的 adbkey.pub)从我的计算机发送到我的设备;
调用stop adbd
;
cat adbkey.pub >> /data/misc/adb/adb_keys
(授权自己);
start adbd
(使用新密钥重新启动 adb)。
【讨论】:
“~/.android/”是 Linux 路径吗? -- 我们在 Windows 上哪里可以找到这个? ... 找到它,它位于“%HOMEDRIVE%%HOMEPATH%\.Android”下,这是 IMO 放置东西的一个非常奇怪的地方(至少在 Windows 中——应该存储应用程序数据在 %AppData%...)。 在无法通过 USB 电缆连接的 Galaxy S4 中为我工作。现在我至少可以用 adb 无线连接到它了。 只有在你没有 USB 连接的情况下才能做到这一点。 这种方法特别适合当你的设备变砖的时候。【参考方案4】:四个简单的步骤
./adb kill-server
./adb start-server
重新插入设备,解锁并接受新密钥
【讨论】:
谢谢,这是最简单的方法,我跑了adb kill-server && adb start-server
,因为它是单行的。我喜欢这种方法,因为我的开发团队也使用 android 设备,并且按照其他地方的建议重置开发者选项可能会给团队其他成员带来不便。【参考方案5】:
1.) 删除桌面计算机上的 ~/.android/adbkey
2.) 运行命令“adb kill-server”
3.) 运行命令“adb start-server”
现在应该会提示您接受调试密钥。
【讨论】:
此外,我还从我的台式机中删除了 adbkey.pub,并从我的 android 设备中删除了 /data/misc/adb/adb_key。 -- 我确实得到了提示 -- 并且 ADB 再次开始工作了一段时间 -- 但在它死掉并回到离线模式后不久,不知道为什么。 我在答案列表中走得很远,但这个解决方案终于解决了。 感谢分享。删除 adbkey 文件并重新启动 adb 对我有用。【参考方案6】:我没有删除任何键就解决了这个问题。方法如下:
-
我的设备已通过 USB 连接到我的计算机
我确保 Eclipse 和 android 设备监视器没有运行。
在命令行提示符下键入:adb kill-server
在命令行提示符下键入:adb start-server
重新启动 adb 后,我的设备上提示我授权。
【讨论】:
这也对我有用。有一个提示要求我接受 RSA 密钥。就在几年前,从来没有这么麻烦过。有人把事情搞砸了…… 请注意,在 'adb start-server' 之后,您应该会看到 '* daemon not running。现在在端口 XXXX ' 上启动它,然后是 ' 守护进程已成功启动 *' 如果你不这样做,那么 kill-server 部分不起作用,你可能需要从你的任务中杀死 adb 的所有实例经理/活动监视器。 这是正确答案。仅仅取消检查然后重新检查 USB 连接的调试选项对我没有任何帮助,拔下然后重新连接 USB 电缆也没有。在我做了 adb kill-server 然后 adb start-server 然后取消检查 USB 调试然后重新检查 USB 调试后,它工作了。 这个答案解决了我遇到的问题:我的设备被授权,但后来不知何故“忘记了”。我尝试了很多方法来修复它,但“adb kill-server”最终完成了这项工作。 我的手机无法启动它处于启动循环中,我无法启用USB调试,我该怎么办!【参考方案7】:-
确保 adb 是最新的
确保您使用的是谷歌 USB 驱动程序:http://developer.android.com/tools/extras/oem-usb.html
确保您的 ANDROID_SDK_HOME 环境变量设置为正确的路径
【讨论】:
这个答案应该更高——最新版本的 Android Studio 会强制您将 SDK 目录移出 AS 安装路径。在 Windows 上执行此操作而不移动ANDROID_SDK_HOME
环境变量将导致设备显示为 unauthorized
。
这……这确实有效。当文件夹位于 ...\Android\android-sdk
时,我的 ANDROID_SDK_HOME 设置为 ...\Android\sdk
。更改它并打开一个新的命令提示符(以使用更新的环境变量)让我在再次启动 adb-devices
后弹出。【参考方案8】:
在 Windows 8.1 上的 Nexus 5 上获取授权令牌时遇到同样的问题。我没有安装最新的 adb 驱动程序 - 这在设备管理器中可见。在此处从 Google 下载最新的 ADB USB 驱动程序: http://developer.android.com/sdk/win-usb.html
在设备管理器中更新了驱动,但是启用/禁用 USB 调试和拔/插 USB 仍然不起作用。最后,一旦驱动程序更新,其他答案中提到的“adb kill-server”和“adb start-server”就可以解决问题。
【讨论】:
在我卸载旧驱动程序并选中“删除驱动程序”复选框后,这对我在 Windows 7 上有效......然后将新驱动程序重新安装到设备上。【参考方案9】:我必须重新安装我的 adb 驱动程序才能摆脱这个问题。我安装了“Universal Naked Driver”以恢复我的手机。我卸载了它并从 android sdk 中重新安装了驱动程序。
【讨论】:
【参考方案10】:将 USB 连接模式从 MTP 更改为相机(适用于 Nexus 7),或者可能更改为 Mass Storage 或其他方式(适用于其他设备)。此选项通常位于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
(并支持 this answer)
重启设备(是的,令人惊讶的是,这也是一个有效的措施)
(显然)重新插入电缆,尝试不同的电缆,不同的端口,移除所有延长线
【讨论】:
这很好用。好像是强制windows 7机器重新安装驱动。 为我的 Nexus 4 解决了这个问题。谢谢 哇——终于成功了!我已经尝试了几个小时试图让我的 Nexus 7 显示身份验证对话框。为了将来参考,为了改变 USB 连接模式,你必须进入设置,存储并点击右上角的菜单图标按钮 - 谈论模糊!我既没有检查 MTP 也没有检查相机,但是一旦我检查了相机选项,就会出现对话框(当然是插入的)。 "[Linux] 确保 ~/.android 下的所有内容都归您所有,而不是 root(并支持此答案)" - 是为我解决的问题。谢谢! 这应该是公认的答案...!非常感谢。【参考方案11】:我重新安装了usb
驱动程序并确保我没有使用USB 3.0
端口。
然后我关闭了eclipse并杀死并重新启动adb
。
立即在手机上提示允许计算机访问。接受后我重新启动了 eclipse,现在我的 Galaxy S3 出现在设备设备管理器中。
【讨论】:
【参考方案12】:当我关闭我的 Comodo Antivirus 时,一切恢复正常。这里建议的所有其他解决方案都是徒劳的。不知何故,我想出了一个解决方案。
如果您使用的是 Comodo Antivirus(版本 6.3/对于其他版本,请搜索类似选项)以下解决方案会对您有所帮助。
打开 Comodo > 任务 > 高级任务 > 打开高级设置 > 安全设置 > 防火墙 > 防火墙设置 > 高级:过滤环回流量(例如 127.x.x.x、::1)
取消选中这个“过滤环回流量”选项,它会阻止 adb 正常工作。
【讨论】:
【参考方案13】:对我来说,一旦我禁用了 MTP(在设置>存储>菜单>MTP),我终于得到了 RSA 提示
【讨论】:
【参考方案14】:与 Flavio 的回答 (https://***.com/a/18542792/1064996) 类似,这与 ~/.android
中的文件有关(在主机上,而不是手机上)。
我没有~/.android/adbkey
,但我确实有~/.android/debug.keystore
,而且我的整个~/.android
目录归根用户所有。我删除了密钥库文件并将所有权更改为我 (sudo chown -R $USER ~/.android
),关闭了 adb 服务器并插入了我的手机,它就可以工作了。
这可能是所有权问题。确保您在~/.android
中具有读/写权限
【讨论】:
感谢您对链接的回答——完美。 ~/.android上的权限问题 你救了我,谢谢。为什么整个互联网上没有人没有提到权限问题......【参考方案15】:确保您已启用 USB 调试后,解锁您的手机并通过 USB 将其插入您的机器。然后,您将被要求授权与您连接的计算机进行通信。它还将显示计算机的 RSA 密钥指纹。
接受它,你就可以开始了!
【讨论】:
【参考方案16】:对于我的三星 S3,我必须进入手机上的开发者选项,取消勾选“USB 调试”复选框,然后重新勾选。
然后会出现对话框,询问您是否要允许 USB 调试。
完成此操作后,“adb devices
”命令不再显示“unauthorized”作为我的设备名称。
(几个月后..)
实际上,连接我的 Galaxy Tab S 设备也是如此,并且菜单选项与 Android 4.4.2 的位置略有不同:
【讨论】:
【参考方案17】:使用不同的 USB 数据线。有些电缆可能没有连接所有引脚或其他什么,当它们用于图像传输时,调试/adb 不起作用。
底线:我没有骗你。适用于我的手机的电缆(adb 适用)不适用于我的平板电脑 - 设备始终处于脱机状态或未经授权,平板电脑不会弹出任何对话框。我尝试了多次重启,设置,在这个过程中我发疯了,诅咒了该死的安卓。然后我不小心插入了平板电脑附带的电缆,突然它工作了。我对 Android 的迷恋肯定已经消失了。多么愚蠢的垃圾。
【讨论】:
【参考方案18】:在我的备份软件更改了对我的用户目录的权限后,这发生在我身上。我在文件资源管理器中打开它,它提示我设置权限并解决了问题。
仅供参考:Android 在 "\User\.android" 下有一个特殊目录,如果您无法访问它,它不会提示您。
【讨论】:
【参考方案19】:如果您通过网络使用 adb,请尝试通过 USB 连接,反之亦然。这对我有用。一旦接受它,它总是在以后工作。
【讨论】:
【参考方案20】:我的解决方案是从命令提示符运行adb devices
,路径到 adb 应用程序。例如 C:\Android\platform-tools\adb devices 。运行此命令返回以下* daemon not running. starting it now on port 5037 *
*daemon started successfully *
然后我看到该设备被列为未经授权,拔下 USB,重新插入并提示输入 RSA 指纹。
【讨论】:
【参考方案21】:这种旧帖子,在大多数情况下,我认为获得最多投票的答案对人们有用。
在 GPE HTC M8 上的 Lollipop 中,我仍然遇到问题。以下步骤对我有用。
-
进入设置
点击存储
点击右上角的 3 个点
点击 USB 计算机连接
取消选中 MTP
取消选中 PTP
返回控制台,输入
adb devices
现在您应该会在手机上看到 RSA 弹出窗口。
【讨论】:
【参考方案22】:这是我的步骤版本:
-
确保 adb 正在运行
在设备中转到设置 -> 开发者选项 -> 撤销 USB 调试权限
断开设备
在 adb shell 中输入 > adb kill-server
在 adb shell 中输入 > adb start-server
连接设备
如果 adb shell 显示空主机名,重启设备
【讨论】:
【参考方案23】:我也遇到了同样的问题,我发现我使用的是一根简单的 USB 电缆,它只用于充电而不是数据复制。使用好的 USB 数据线解决了我的问题!
【讨论】:
【参考方案24】:有同样的问题。不确定这些对于 Windows 是否与我使用 OS X 设备的步骤相同,但您可以尝试:
-
重启手机进入恢复模式。
将其连接到您的计算机。
打开终端并输入:
cd ~/.android
adb push adbkey.pub /data/misc/adb/adb_keys
全部完成!只需adb shell reboot
,感受力量!
【讨论】:
你刚刚结束了我 2.5 小时的挫败感!!【参考方案25】:我的手机上没有弹出 RSA 指纹。
我不得不删除 C:\Users\<userName>\.android\adbkey
和 adbkey.pub
文件,然后杀死并重新启动 adb 服务器。
adb kill-server
adb start-server
我不得不停止并重新启动调试器并在 PTP 模式下作为 USB 连接。
由于 RSA 授权密钥存储在此路径中,因此终止并重新启动 adb 服务器没有帮助。
【讨论】:
【参考方案26】:简单地重新插入对我来说就是诀窍.... 权限对话框在我第一次插入设备时没有出现,第二次出现了,现在一切都很好。
【讨论】:
这应该是Community Wiki以上是关于无法将 Nexus 4 连接到 adb:未经授权的主要内容,如果未能解决你的问题,请参考以下文章
无法将 Nexus One 手机连接到 Android adb