我有一个华为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的环境变量被篡改了,这个大家也可以看看是否是这个原因。

adb devices连接提示 Android offline或unauthorized的解决办法的更多相关文章

  1. adb无法使用,提示error: unknown host service的解决办法

    此时,需要辨别电脑的5037端口被哪个应用程序占用的方法:(使用adb时需要5037端口是空闲的) 1. 打开命令行,输入命令:netstat -ano |findstr "5037&quo ...

  2. 【转】Android出现“Read-only file system”解决办法

    原文网址:http://www.111cn.net/sj/android/44496.htm 下面介绍一篇Android出现“Read-only file system”解决办法 有碰到这类问题的朋友 ...

  3. (转载)Android出现“Read-only file system”解决办法

    下面介绍一篇Android出现“Read-only file system”解决办法 有碰到这类问题的朋友可参考参考.   Android-出现Read-only file system的解决方法 输 ...

  4. Xamarin Android SDK无法更新的解决办法

    Xamarin Android SDK无法更新的解决办法   Xamarin Android SDK无法更新的解决办法,更新时候,提示警告信息:A folder failed to be moved. ...

  5. android studio 错误汇总以及解决办法

    android studio 错误汇总以及解决办法  参考 https://www.jianshu.com/p/7c7de6562231 问题1. Error:Execution failed for ...

  6. Linux提示no crontab for root的解决办法

    Linux提示no crontab for root的解决办法 安装crontab:yum install crontabs 说明:/sbin/service crond start //启动服务/s ...

  7. 【转】Ubuntu 上编译Android出现cannot find -lstdc++解决办法

    [转]Ubuntu 上编译Android出现cannot find -lstdc++解决办法 在Ubuntu 12.04 x86_64机器上编译Android出现下面错误,是因为找不到32bit的li ...

  8. installshield制作的安装包卸载时提示重启动的原因以及解决办法

    原文:installshield制作的安装包卸载时提示重启动的原因以及解决办法 有时候卸载installshield制作的安装包程序,卸载完会提示是否重启电脑以完成所有卸载,产生这个提示的常见原因有如 ...

  9. Ubuntu中Android SDK Manager无法更新解决办法

    Ubuntu中Android SDK Manager无法更新解决办法http://hi.baidu.com/petercao2008/item/d7a64441f04668e81e19bc1a

随机推荐

  1. TCP_Wrappers

    TCP_Wrappers配置 这里主要涉及到两个配置文件/etc/hosts.allow和/etc/hosts.deny./usr/sbin/tcpd进程会根据这两个文件判断是否对访问请求提供服务. ...

  2. vsftp 虚拟用户测试

    1.创建用于进行FTP验证的帐号密码数据库文件,单数行为账户名,偶数行为密码.[root@rhel1 vsftpd]# vi /etc/vsftpd/vuser.listuser1123456user ...

  3. centos 7 系统启动不了 出现报错dependency failed for /mnt , dependency failed for local file systems

    阿里云一台Ecs重启后启动不了,出现报错 dependency failed for /mnt , dependency failed for local file systems ,  报错的原因  ...

  4. Linux-中断的本质

    更好的参考:CPU的内部的中断 学习中断是为了理解信号,因为信号即软中断. 中断不是轮询!比如最常见的在UART通信过程中(收发数据),有两种方式,一种是中断,一种是轮询.如果中断是轮询,这两者就没区 ...

  5. ubuntu_thunder

    Thunder 出自Ubuntu中文 File:Http://forum.ubuntu.org.cn/download/file.php?id=123020&mode=view/wine-th ...

  6. iOS 设备屏幕上实时打印 Log 的小工具

    需求 写这个小工具的想法,主要来源于很多团队都会用友盟.TalkingData 等第三方框架做自定义事件统计:不过统计代码加好之后,没有很好的方法来让测试工程师验证一下事件加上了没有,调用次数有没有重 ...

  7. Linux下Valgrind的使用概述 来源:Linux社区 作者:dndxhej

    本地使用情况,在Ubantu系统上编写的测试性能: 1,下载:sudo apt-get install valgrind; 2,验证是否安装成功:试着valgrind ls -l来检测是否正常工作: ...

  8. Linux内核的ioctl函数学习

    Linux内核的ioctl函数学习 来源:Linux公社  作者:Linux 我这里说的ioctl函数是在驱动程序里的,因为我不知道还有没有别的场合用到了ioctl, 所以就规定了我们讨论的范围.为什 ...

  9. Mysql DBA 20天速成教程

    Mysql DBA 20天速成教程 基本知识1.mysql的编译安装2.mysql 第3方存储引擎安装配置方法3.mysql 主流存储引擎(MyISAM/innodb/MEMORY)的特点4.字符串编 ...

  10. 【C#】Skip和Tack方法实现分页

    int pageIndex = SearchModel.PageIndex <= 0 ? 1 : SearchModel.PageIndex; return BatchInfoList.Skip ...