真机调试adb:wait for device 解决方案

1、adb logcat 命令的时候,cmd总是提示adb server did't ACK.
  
   分析一下,明显adb server没有开启成功,服务启动失败一般都是端口绑定失败,所以我们只有释放占据改端口的程序即可
      1、adb nodaemon server 命令查看一下,这时cmd输出:can't bind tcp:5037
      2、netstat -ano|findstr "5037"查看一下什么进程占了5037端口
      3、从列出的列表里面找到TCP 0.0.0.0.0 程序的PID,比如PID为1234
      4、杀死该进程,有两种方法,一是启动任务管理器,查看->选择列->勾选PID,找到PID为1234的进程杀死,二是直接cmd:kill -9 1234
      5、重新插拔设备
 
2、adb logcat 和adb shell 的时候,cmd总是提示wait for devices.
 
      起先我并没有注意到这个是问题,我以为是时间问题,然后等了半天还是wait for devices .我就纳闷了,难道我设备没有连接上?看了一下手机,明显是连上了啊,在试了一下手机助手,也能连上啊,为什么adb就是找不到设备呢。为了证实我的想法,我就adb devices了一下。果然:
 
    
     
     
 
     根本就没有设备。
    
     于是网上找了半天解决办法,刚好讲述这些奇葩的经历。我尝试的四种方法如下:
 
      一、重启adb服务
              
                      adb kill-server,adb start-server,adb devices。很可惜,失败了,传说中最靠谱,解决了大多数问题的办法在我这失效了。
 
      二、虚拟设备
      
                      看到了很多人说这种时候必须要启动虚拟机才能找到,抱着怀疑的态度我试了试
 
     
 
             至此,我觉得我对那些网上瞎喊的人(还不止一个)完全没爱了,确定这不是再逗我?说好的我的真机设备呢?冷静下来一想突然就觉得自己活该,adb真机调试本要就要求仅有一个安卓设备连接,不然会端口抢占,本来一听说要启动虚拟机,我就该否决的,不该随流病急乱投。
 
 
   三、usb驱动
   
                      
          想了半天,都找不到原因,我只好归结为驱动的错了。于是我特地去找了个adb shell驱动,放到了c盘win32下。一放下我就后悔了,尼玛啊
 ,手机助手都能连上,明显不是驱动的问题啊,不然人家怎么能安装的上。。。。。。我又脑残的无用功了。不过算了,当有备无患吧。。
 
    附上博主分享的驱动地址:http://pan.baidu.com/s/1qW7JdTy
 
 
 
   四、添加真机设备硬件ID
      
              寻遍网络,最后找到一个近在眼前的办法。。。
 
           1、右击我的电脑,然后找到设备管理器打开。
                  
                
    
                  2、找到设备ID
                  
                        
 
 
                     3、C盘 Administrator\.android>下找到或新建一个adb_usb.ini文件。
 
                     4、把VID的数值写入到adb_usb.ini 里面。就是0xVID(0x1BBB)这6个字符即可。
 
                           
 
                     
                      5、cmd上输入adb kill-server 然后重新拔插usb线之后,就可以连接adb 了。
                          
                           
 
 
 
 
                至此,问题解决,adb logcat 和adb shell 别提跑的有多溜了~
                       
原文地址:https://www.cnblogs.com/yanzisucheng/p/4369266.html