adb devices连接提示 Android offline或unauthorized的解决办法
2016-01-09 21:06
537 查看
转自:http://www.dabu.info/adb-devices-android-offline-unauthorized.html
这篇文章是转的,因为我也今天用adb 连接自己的小米手机提示 unauthorized ,深感无语,已经也是自己的笔记本调试,是没问题的,结果今天居然提示没有认证。
我有一个华为X1手机,版本是Android 4.2.2(我的手机是Android 4.0版本), 但之前用adb连接(包括usb/tcp)时总莫名其妙出现offline或unauthorized的问题,今天搞明白了原因并解决之:
我试过网上的一些方法,什么 adb kill-server ,然后 adb start-server 。没有任何效果。
1.
网上说从4.2.2开始,adb连接新增了认证确认功能,即用USB连接时在手机上会出现需要确认的对话框。用户点击确认后才可继续。在用户确认之前或出
现其它认证相关的问题时,adb
devices显示的状态是unauthorized。确认之后,android手机会在/data/misc/adb/adb_keys这个文件上添加
一行key数据,据推测这个key应是运行adb的PC用户的RSA公钥。之后这个PC的用户运行adb连接这个手机时就不会再出现认证确认对话框了。 (我就是没有出现“允许调试的弹窗提示”,所以我尝试删除 /data/misc/adb/adb_keys ,然后重启手机,以此来重新获得key,期望有
“允许调试的弹窗提示”,但是依旧没有“允许调试的弹窗提示”,adb devices依旧提示 unauthorized)
2.
上述说的是手机和adb(PC侧客户端)版本是4.2.2以上的情况。但如果adb的版本是旧的(不支持认证),而Android手机是新版本,这时连接
肯定是不成功的,显示的状态是offline,而不是unauthorized,Android手机上也不会出现确认对话框。这时往往用户不知道是怎么回事。(自己可以用adb version命令来查看adb的版本,大部分人的adb版本不可能是旧版本了,毕竟都是最新的 Android SDK)
3. 如果adb客户端不使用USB连接手机,而是使用TCP的方式(手机上需要启动adbd)连接手机, 例如: adb
connect
192.168.1.10,估计是由于Android版本的BUG(不知后续版本是否有修复?),连接时不会出现认证确认对话框,导致出现
unauthorized的问题。那么解决的方法是:先用USB连接并确认后,Android手机保存了该PC用户的Key后,使用TCP连接就可以直接
成功了。(这个方法最终解决了adb devices 提示 unauthorized。我先删除 /data/misc/adb/adb_keys ,重启手机,再用usb连接手机和电脑,开启usb调试功能,然后就有“允许调试的弹窗提示”的,点击确认,然后拔下usb线,用wifi的方式连接adb进行调试,问题就解决了)
网上还有人发现是自己的Android sdk的环境变量被篡改了,这个大家也可以看看是否是这个原因。
来源: <http://demo.netfoucs.com/lindev/article/details/41985687>
这篇文章是转的,因为我也今天用adb 连接自己的小米手机提示 unauthorized ,深感无语,已经也是自己的笔记本调试,是没问题的,结果今天居然提示没有认证。
我有一个华为X1手机,版本是Android 4.2.2(我的手机是Android 4.0版本), 但之前用adb连接(包括usb/tcp)时总莫名其妙出现offline或unauthorized的问题,今天搞明白了原因并解决之:
我试过网上的一些方法,什么 adb kill-server ,然后 adb start-server 。没有任何效果。
1.
网上说从4.2.2开始,adb连接新增了认证确认功能,即用USB连接时在手机上会出现需要确认的对话框。用户点击确认后才可继续。在用户确认之前或出
现其它认证相关的问题时,adb
devices显示的状态是unauthorized。确认之后,android手机会在/data/misc/adb/adb_keys这个文件上添加
一行key数据,据推测这个key应是运行adb的PC用户的RSA公钥。之后这个PC的用户运行adb连接这个手机时就不会再出现认证确认对话框了。 (我就是没有出现“允许调试的弹窗提示”,所以我尝试删除 /data/misc/adb/adb_keys ,然后重启手机,以此来重新获得key,期望有
“允许调试的弹窗提示”,但是依旧没有“允许调试的弹窗提示”,adb devices依旧提示 unauthorized)
2.
上述说的是手机和adb(PC侧客户端)版本是4.2.2以上的情况。但如果adb的版本是旧的(不支持认证),而Android手机是新版本,这时连接
肯定是不成功的,显示的状态是offline,而不是unauthorized,Android手机上也不会出现确认对话框。这时往往用户不知道是怎么回事。(自己可以用adb version命令来查看adb的版本,大部分人的adb版本不可能是旧版本了,毕竟都是最新的 Android SDK)
3. 如果adb客户端不使用USB连接手机,而是使用TCP的方式(手机上需要启动adbd)连接手机, 例如: adb
connect
192.168.1.10,估计是由于Android版本的BUG(不知后续版本是否有修复?),连接时不会出现认证确认对话框,导致出现
unauthorized的问题。那么解决的方法是:先用USB连接并确认后,Android手机保存了该PC用户的Key后,使用TCP连接就可以直接
成功了。(这个方法最终解决了adb devices 提示 unauthorized。我先删除 /data/misc/adb/adb_keys ,重启手机,再用usb连接手机和电脑,开启usb调试功能,然后就有“允许调试的弹窗提示”的,点击确认,然后拔下usb线,用wifi的方式连接adb进行调试,问题就解决了)
网上还有人发现是自己的Android sdk的环境变量被篡改了,这个大家也可以看看是否是这个原因。
来源: <http://demo.netfoucs.com/lindev/article/details/41985687>
相关文章推荐
- Android Fragment 深度解析
- Android半透明等待界面及使用线程控制结束
- android studio运行时提示ADB出错,无法运行
- Android项目重构之路:界面篇
- Android中canvas.save()和canvas.restore()的使用
- Android自定义ScrollView实现上下反弹效果
- Android 开发中百度地图运行一段时间地图轨迹不更新的问题
- Android Butterknife框架配置
- Android常用控件
- Toast大全(默认,顶部,底部,各种自定义) Android
- Android四大组件之广播接收器(一)
- Android APP代码拨打电话、打开手机分享功能等隐式意图
- Android studio中导入slidingmenu
- android音频
- Android5.0实现全透明状态栏效果
- android service生命周期
- 学习Android中设计模式的笔记和总结(二)
- Android基础之SharedPreferences
- Android中的ANR如何分析又如何避免
- android studio 不支持 .9图片?