我有一个华为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. View类的XML属性、相关方法及说明

    XML属性 相关方法 说明 android:alpha setAlpha(float) 设置该组件的透明度 android:background setBackgroundResource(int) ...

  2. Cmake编译SDL2

    cmake -G"NMake Makefiles" && nmake 中出现了以下这个RC资源编译器报告的错误: invalid language id when ...

  3. asp:ObjectDataSource+asp:GridView 实现真分页

    <asp:GridView ID="GridViewCacheManager" DataSourceID="OdsCacheManager" runat= ...

  4. db_table--Spring Security3.1 最新配置实例

    2011-04-28 这几天学习了一下Spring Security3.1,从官网下载了Spring Security3.1版本进行练习,经过多次尝试才摸清了其中的一些原理.本人不才,希望能帮助大家. ...

  5. sqlserver修改为windows验证登陆, 程序的调整

    业务需求, 客户要求sqlserver改为windows验证登陆, sa用户不可用, 程序端如何修改呢? 我在本机做了个测试. 环境: sqlserver2016, springmvc+spring+ ...

  6. Java多线程编程:Callable、Future和FutureTask浅析

    通过前面几篇的学习,我们知道创建线程的方式有两种,一种是实现Runnable接口,另一种是继承Thread,但是这两种方式都有个缺点,那就是在任务执行完成之后无法获取返回结果,那如果我们想要获取返回结 ...

  7. 【Android】Android如何对APK签名

    在eclipse项目,生成的apk是自动签名的,因此无需关心.接下来笔者介绍通过DOS窗口对APK进行签名,以及签名的过程中需要注意的问题. 1.为什么需要对APK签名 所有的Android应用程序都 ...

  8. 安装Eclipse Maven插件的方法

    安装IDE Plugins的方法有很多.其一:在线安装,通过Help-->Install New Software的方式,输入HTTP地址来安装,简单易操作,但是也优缺点,就是下载速度慢,或者有 ...

  9. Installation error: INSTALL_FAILED_CONFLICTING_PROVIDER 解决方案

    主要是由于调试的环境中已有一个同名的Provider存在. 解决方法是修改AndroidManifest.xml中的 <provider android:name=".apps.App ...

  10. 【转】DRY原则的误区

    很多编程的人,喜欢鼓吹各种各样的“原则”,比如KISS原则,DRY原则…… 总有人把这些所谓原则奉为教条或者秘方,以为兢兢业业地遵循这些,空喊几个口号,就可以写出好的代码.同时,他们对违反这些原则的人 ...