ADB Android设备未经授权

问题描述 投票:305回答:32

自从我重新安装Eclipse(只是删除并再次下载)后,我无法在Samsung Galaxy i9001(使用CyanogenMod - Android 4.4.2)上调试我的应用程序。它在重新安装之前工作正常。

拔下/插入,取消选中/选中“Debug Enabled”,adb kill-server / adb start-server,重启手机/电脑对我不起作用。在设备授权对话框上永远不会出现(但我记得在重新安装之前出现了对话框)。我不知道如何强制显示此授权对话框。 .android目录中没有abd_key.pub文件。当我尝试读取cpu信息DDMS说:

[2014-04-15 12:47:06 - DDMS] device unauthorized. Please check the confirmation dialog on your device.

有任何想法吗?是否可以手动生成密钥而无需确认对话框?

USB连接

无线连接

android usb adb device unauthorized
32个回答
866
投票

无论出于何种原因,该设备很可能不再在ADB上获得授权。

1.检查是否授权:

<ANDROID_SDK_HOME>\platform-tools>adb devices
List of devices attached
4df798d76f98cf6d        unauthorized

2.撤消手机上的USB调试

如果设备显示为未授权,请转至手机上的开发人员选项,然后单击“撤消USB调试授权”(使用JellyBean和Samsung GalaxyIII进行测试)。

3.重新启动ADB服务器:

然后重启adb服务器

adb kill-server
adb start-server

4.重新连接设备

设备将询问您是否同意连接计算机ID。你需要确认一下。

5.现在检查设备

它现在被授​​权!

adb devices
<ANDROID_SDK_HOME>\platform-tools>adb devices
List of devices attached
4df798d76f98cf6d        device

7
投票

尝试强制ADB创建新密钥:

$ mv ~/.android/adbkey ~/.android/adbkey.old
$ mv ~/.android/adbkey.pub ~/.android/adbkey.pub.old
$ adb kill-server
$ adb start-server

在此之后我甚至不需要拔掉我的电话:授权提示已经存在。祝好运!


5
投票

我对此进行了分层,我通过关闭手机的Wi-Fi获得了该权限对话框。


4
投票

在osx和Nexus 5(A6.0.1)上有类似的问题。我确实获得了授权弹出并确认了它,尽管Android Studio或任何其他IDE都可以连接到设备。

原来我的Nexus(rooted)缺少关键文件。

  • 重启Android设备进入恢复状态
  • Ran代码贴在下面
  • 重新启动Android设备,adb现在识别设备

将密钥从计算机推送到Android设备:

 cd ~/.android && adb push adbkey.pub /data/misc/adb/adb_keys

Solution came from here


4
投票

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

我不得不进入

  C:\Users\<userName>\.android\adbkey and adbkey.pub 

文件,删除那些,然后杀死并重新启动adb服务器。我必须停止并重新启动调试器并在PTP模式下作为USB连接。

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


4
投票

这解决了我的问题!

  1. 运行你的Android模拟器
  2. 转到设置并启用开发人员模式
  3. 从开发人员设置usb调试启用

在这一点上,你将获得模拟器弹出按摩授权设备,你很高兴去:)


3
投票

解决方案是将您的文件~/.android/adbkey.pub(在GNU / Linux上,或在Windows上的%USERPROFILE%\.android\adbkey.pub)复制到Android,并将其作为/data/misc/adb/adb_keys。您需要root权限才能执行此操作。

您可以以任何方式(或能够)传输文件,无论是USB,电子邮件还是临时文件上传服务。在我的情况下,因为它是在虚拟机中安装的新的Android-x86,没有可用的Web浏览器,并且网络/ TCP adb无法正常工作,所以我必须实际输入715个字符。

至少它起作用了。


2
投票

在一些三星设备上,可以通过拨打*#0808#设置的模式更改不会在没有直接重启的情况下坚持下去。重新启动后,拨打相同的字符串并确保选择了adb + mdp并将USB设置为AP。在此之后,请确保重新连接手机并重新启动ADB服务器。同时尽量避免使用USB集线器和虚拟机,这无疑会使问题进一步复杂化。按照前面提到的清除授权设备等的说明进行操作。


1
投票

检查你是否安装了kies。这是一种可能的解决方案


1
投票

我遇到了类似的问题。但是,它是使用不同的解决方案解决的。我想我也可以在这里分享一下。让我先描述一下我的问题。

我在我的ubuntu中安装了Android SDK。 android SDK的路径不在环境变量路径中。我使用apt-get命令安装adb,它无法找到sdk主文件夹,因此,它显示未经授权的错误,设备也没有弹出任何东西。我被困在这里。

然后我使用之前安装的apt-get purge卸载了adb。 Android SDK在platform-tools文件夹中有adb程序。我只是添加环境变量的路径,它就像一个魅力。

export PATH=${PATH}:/home/YOUR-USERNAME/path/to/adb
adb devices
List of devices attached
f7f716d56905    device

因此问题是没有将Android SDK设置为环境变量路径。


0
投票

我在两部手机中收到同样的信息:

- Sony Xperia E
- Samsung Galaxy Core 2

Android 4.4.2,我用这两个步骤解决了它:

1.-将我的adb更新到1.0.31,从SDK Manager下载最新版本的Android SDK

您可以输入以检查您的adb版本

adb version

2.-手机插入USB调试模式后,会出现一条消息,要求您授权此计算机进行调试。您必须标记“始终允许此计算机”,然后单击“允许”。

希望能帮助到你。


83
投票

哦,最后我明白了!删除Eclipse目录后,我将其安装到另一个目录中。

echo %ANDROID_SDK_HOME%

显示错误的sdk目录路径。

  1. set ANDROID_SDK_HOME "E:\adt-bundle-windows-x86_64-20140321\sdk"
  2. 拔掉设备
  3. adb kill-server
  4. adb start-server
  5. 插头装置

完成这些步骤后,我能够在手机上看到带有RSA指纹的确认对话框:)


0
投票

这是错误,因为您的窗口版本没有usb 3.0驱动程序接收器验证来自手机的权限。我花了5天时间来处理这个bug。现在,安装58964_Intel(R)_USB_3.0驱动程序。并继续使用很棒的代码!

i use this link to download driver


0
投票

它不适用于所有情况,但因为我使用了长电缆我的设备没有正确连接和消息不会弹出更改电缆可能会解决问题


0
投票

adb usb为我工作这会重新启动监听USB端口的adb守护程序返回的命令:

错误:设备未授权。请检查设备上的确认对话框

。但RSA密钥的提示立即出现在手机上。一旦我批准,一切都按预期开始工作


0
投票

安装Android工作室后,我对文件夹“〜/ .android”的权限不正确(仅对root用户进行读写访问)。所以我改变它并从Android工作室运行项目(设备仍被标记为“未授权”)。

Android工作室显示错误“安装apk错误”,但在文件夹“〜/ .android”中创建了文件“adbkey”,“adbkey.pub”,“debug.keystore”。

之后我重新启动了adb(运行命令adb kill-server和adb start-server),并且我的设备上出现了授权对话框。

希望有人会接近这个解决方案。


0
投票

我为解决这个问题所做的工作是再次断开usb电缆与USB端口的连接并重新连接(使用我机器上的另一个端口完成)。

然后我选择充电,就是这样。移动设备要求我授予机器访问权限,我同意了,这解决了这个问题。

运行adb设备时,我在列表中看到了该设备。

(在Windows 10家中完成)。


0
投票

我只是尝试adb kill-server,它对我有用:

PS C:\Users\languoguang> adb devices
List of devices attached
MKJ0117A19000186        unauthorized
PS C:\Users\languoguang> adb shell
error: 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.

杀死并启动adb服务器:

PS C:\Users\languoguang> adb kill-server
PS C:\Users\languoguang> adb start-server
* daemon not running; starting now at tcp:12345
* daemon started successfully
PS C:\Users\languoguang> adb devices
List of devices attached
MKJ0117A19000186        device

0
投票

如果您使用的是ubuntu,请尝试以root身份运行服务器:

sudo adb kill-server

sudo adb start-server


0
投票

我坚持了很长一段时间,我能够通过从我的手机连接的计算机上复制adbkey来完全解决问题。


0
投票

断开设备与计算机的连接。

进入开发人员设置。

关闭开发人员设置。

打开开发人员设置。

启用USB调试(以及您事先启用的其他设置)

将设备重新连接到计算机。

再试一次。

为我工作,希望它对你有用!


0
投票

我正在使用较旧的华为手机。当我插入我的Debian Stretch实例时,我得到USB计算机连接弹出窗口。如果设置为MTP,PTP或“连接到PC软件”,我发现“adb devices”将失败。但是,如果我将连接选项设置为:

装SD卡

然后我可以运行“adb devices”并将状态从未授权更改为设备。

我也打开了:

USB调试


38
投票

我遇到了与nexus7相同的问题。

以下是为了解决这个问题。

  1. 在设备的Developer菜单中打开Settings选项。
  2. Switch off屏幕右上角的按钮。
  3. Delete从菜单列表中选择所有debug permission
  4. Switch on屏幕右上角的按钮。

现在将您的设备重新连接到您的PC,一切都应该没问题。

抱歉我的英语不好,菜单(按钮)的某些名称可能不正确,因为我的是日语。


0
投票

一旦我更改了我的开发设备,同样的问题就开始出现了,它解决了:

$ mv ~/.android/adbkey ~/.android/adbkey.old
$ mv ~/.android/adbkey.pub ~/.android/adbkey.pub.old
$ adb kill-server
$ adb start-server

26
投票

我有同样的问题。通过将“USB计算机连接”设置为“相机(PTP)”而不是“媒体设备(MTP)”解决了问题


20
投票

我在这个愚蠢的问题上浪费了几个小时。上述解决方案都不能单独为我工作。

我正在运行Windows 10.我有一个旧手动安装的Android SDK以及Android Studio的SDK。我删除了手动安装的SDK,所有设备都停止了工作。这些是症状:

$ adb usb
error: 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.

以及

$ adb devices
List of devices attached
id1        unauthorized
id2        unauthorized
id3        unauthorized

说实话,我不确定这些步骤中的哪一个让我得到了允许USB调试?提示回来,所以我列出了一切的完整性。按顺序从最简单到最难。在前两节之后,大多数人似乎都重新站起来了。


Restart ADB

我将在以下每个部分之后执行此操作。

adb kill-server
adb usb

Go crazy with developer options

  1. 关闭开发人员选项并重新打开
  2. 关闭USB调试并重新打开
  3. 撤消USB调试授权。在USB调试开启时尝试此操作,如果可能,请在USB调试关闭时尝试。

Replug devices

  1. 拔下USB电缆并将其重新插入手机。
  2. 在PC上切换USB电缆所连接的物理端口
  3. 切换用于连接设备的物理USB电缆

Start rebooting everything

  1. 重新启动所有设备并重新连接
  2. 重新启动电脑
  3. 打开和关闭WIFI

Start deleting things

  1. 小心删除~/.android文件夹。有时此文件夹可能具有错误的权限,这可能会导致问题。您可能希望先备份此文件夹。
  2. 从添加/删除程序卸载所有制造商特定的驱动程序。我卸载了以下(名称不准确) LG联合USB驱动程序 HTC移动USB驱动程序 OnePlus USB驱动程序1.00 三星USB驱动程序
  3. 我还卸载了所有模拟器及其各自的驱动程序(可选) Nox及相关司机 蓝叠 Genymotion

Erase all Android related environment variables.

  1. 如果你设置了它,请删除%ANDROID_HOME%
  2. 如果你设置了它,请删除%ANDROID_SDK_HOME%

在这一点上,我的所有设备都神奇地变为现实并开始显示允许USB调试?通过亚行正确提示和连接。如果你已经做到这一点并且没有找到解决方案,我真的很抱歉你处于这种困境中。确保在所有这些步骤结束时重新启动所有设备和开发机器,并使用新电缆连接到新的USB端口。

如果仍然无效,请尝试以下主题中的其他SO帖子:


14
投票

作为参考,我刚刚在Linux上遇到了同样的问题,并且花了很多时间搞清楚它。我最终确定我有一个root权限的〜/ .android目录(感谢以root身份运行adb,同时试图弄清楚其他连接问题)。删除根拥有的〜/ .android目录,下次重新连接设备时解决了丢失的授权对话框。

简单地改变所有权也可以解决问题 - 我猜测这是一个简单的缺乏对存储在内部的adb密钥文件的访问权限,这是问题的根源。我没有验证,但是,我不会故意打破我来之不易的连接,所以我可以检查;-)


12
投票

对我有用的步骤: 1.断开USB连接线的电话 2.撤消手机上的USB调试 3.重启设备 4.重新连接设备 最重要的部分是重启设备。没有它就行不通。


8
投票

如消息所述,您需要允许在手机上访问adb。

您需要先使用USB线将手机连接到PC,然后屏幕上会弹出授权消息。勾选记住您的选择,然后允许它。

如果您的设备在连接到PC时没有显示任何消息。只需这样做。

删除/ data / misc / adb / adb_key,重新启动手机并再次尝试连接。该消息应该出现。


8
投票

我的Nexus 10出现了这个错误。我尝试了所有可以找到的答案,然后我意识到我使用的是不同于通常的USB端口。我切换到使用我经常使用的端口,这是我笔记本电脑的另一端,授权在我的平板电脑上弹出!

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