ADB Android设备未授权
ADB Android设备未授权
自从我重新安装了Eclipse(只是简单地删除并重新下载)后,我无法在Samsung Galaxy i9001(搭载CyanogenMod-Android 4.4.2)上调试我的应用程序。在重新安装之前,它能正常工作。\n对我来说,拔插、取消/选中“调试已启用”、adb kill-server/adb start-server、重启手机/电脑都没有起作用。在设备授权对话框中从未出现过(但我记得在重新安装之前出现过对话框)。我不知道如何强制显示这个授权对话框。在.android目录中没有abd_key.pub文件。\n当我尝试读取CPU信息时,DDMS会显示以下信息:\n
[2014-04-15 12:47:06 - DDMS] 设备未授权。请检查您的设备上的确认对话框。
\n有什么想法吗?是否可能在没有确认对话框的情况下手动生成密钥?\nUSB连接\n\n无线连接\n
ADB Android设备未授权
问题原因:
- 安装了错误的Eclipse目录,导致echo %ANDROID_SDK_HOME%
显示了错误的sdk目录。
- 环境变量ANDROID_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. 插入设备
注意事项:
- 在设置环境变量后需要重启电脑才能生效。
- 如果环境变量没有更新,可以尝试重启电脑、拔掉USB、执行adb kill-server
和adb start-server
,再插入USB设备。
- 在执行步骤2之前,清除设备上的所有权限可能会有一定影响。
- 在执行步骤4时,可能需要使用sudo权限。
通过以上步骤,我成功在手机上看到了RSA指纹确认对话框,但是并没有显示调试启用对话框。
ADB Android Device Unauthorized问题的出现原因可能是由于ADB的密钥文件错误或损坏导致的。解决方法是强制ADB创建新的密钥。
对于Linux/OSX系统,可以执行以下步骤:
1. 移动原有的密钥文件:
$ mv ~/.android/adbkey ~/.android/adbkey.old $ mv ~/.android/adbkey.pub ~/.android/adbkey.pub.old
2. 停止ADB服务器:
$ adb kill-server
3. 启动ADB服务器:
$ adb start-server
对于Windows 10系统,可以执行以下步骤(感谢Pau Coma Ramirez、Naveen和d4c0d312的回答):
1. 打开文件资源管理器,进入路径`%HOMEPATH%\Android\.android\`。
2. 查找名为`adbkey`或`adbkey.pub`的文件。
3. 删除这些文件,或者为了安全起见,将它们移动到其他目录。
4. 在路径`%USERPROFILE%\.android\`中重复以上步骤。
5. 再次尝试使用ADB。
在执行以上步骤后,无需拔出手机,授权提示框将会出现。对于Windows系统,还需要检查路径`%HOMEPATH%\.android\`和`%USERPROFILE%\.android\`中的密钥文件。如果以上方法仍然无效,可能需要删除这两个路径下的文件。
ADB Android设备未经授权的问题可能是因为设备在ADB上不再经过授权。
1. 检查是否经过授权:
<ANDROID_SDK_HOME>\platform-tools>adb devices List of devices attached 4df798d76f98cf6d unauthorized
2. 在手机上取消USB调试权限
如果设备显示为未经授权,在手机的开发者选项中点击“取消USB调试授权”(已在JellyBean和三星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
这里并不需要第二步,但是也找不到那个菜单。
设备没有询问(或者我没有看到它询问)是否同意重新连接,但是按照上述步骤操作后,然后关闭和重新启用USB调试,它就能工作了。
当“List of devices attached”为空时,对于我的4.3设备,执行这些步骤竟然有助于显示设备。(我还必须关闭我之前启用的故障排除时的MTP和PTP USB模式,因为它们会在调试和媒体设备模式之间切换)。
对我来说没有起作用;Android 6.0 Marshmallow没有“取消USB调试授权”的选项。注意:在终止ADB后,我收到“This adbd's $ADB_VENDOR_KEYS is not set; try 'adb kill-server' if that seems wrong”的错误;以及“error: device unauthorized”等。
我必须插拔几次才能在设备上弹出授权对话框。还要多次切换USB调试。
我在Android 4.4.4上找不到“取消USB调试授权”选项。它在哪里?
运行良好,但我必须确保选择了“保持唤醒”,因为如果没有选择,当屏幕变暗时,它会中断连接并返回“未经授权”状态。
如果设备没有提示授权,可能是因为您正在运行adb的帐户没有处理密钥的权限。如果发生这种情况,请尝试以提权方式运行它(例如使用sudo)。
“取消USB调试授权”已被弃用,不再可用。
对于那些在设备上没有收到提示的人,请使用sudo运行该命令。这对我有效。
模拟器上出现“设置已停止工作”的问题
有帮助:adb kill-server,adb start-server
有时这种方法不起作用。在这种情况下,我执行所有步骤,然后将设备连接到我的PC的另一个USB端口上。
如果您不想使用命令行操作,请打开任务管理器并关闭后台进程adb.exe。这是我唯一需要的步骤。
最终,我的手机要求获取权限(弹出消息需要我批准),这是获得“设备”而不是“未经授权”的关键。
对我来说,必须关闭并重新打开开发者选项,而不是“取消USB调试授权”,正如-khamidov在他的答案中指出的那样(Android 10,Redmi 7A)。
取决于您的设备/Android版本,但是设备必须先允许计算机连接,然后才能进入“允许调试层”。在Linux上,这意味着:将设备连接,然后转到Nautilus并点击左侧栏上的设备。它会提示“允许连接到计算机”。只有在这之后,并且adb服务器正在运行,它才会提示进行调试连接。