运行adb shell出现error错误怎么办?
1、adb kill-server来杀死adb进程,然后再使用adb start-server命令来开启;
2、检测5037端口(adb.exe默认端口)是否被占用,关闭除adb.exe以外占用了5037端口的进程,重新开启adb服务:
2.1、adb nodaemon server:检测5037端口是否被占用;
2.2、netstat -ano | findstr “5037”:查看是什么进程占用了5037端口;
2.3、tasklist | findstr “21152”:查看这个进程是由哪个程序创建的(21152就是占用5037端口的一个进程的PID);
2.4、taskkill /f /pid 21152:将进程关掉;
2.5、adb devices:显示当前连接设备。
在此提供另外一种解决方案,通过手动查看硬件ID,并安装google原生android debug驱动;
1、右键我的电脑->管理->设备管理->Android Phone.在这里我们可以看到对应android设备的驱动。
2、选中该驱动右键属性,在详细信息选项下,在属性(p)选项中选择硬件Id,记录下面的值(v)中的信息,例如某设备的这一值为:
USB\VID_2A45&PID_0C02&REV_????&MI_01
USB\VID_2A45&PID_0C02&MI_01
主要关注2A45和0C02这两个值。
3、在电脑中找到android开发下载的sdk目录(假设你已经通过sdk manager下载了),进入\extras\google\usb_driver文件夹下,找到android_winusb.inf并打开,这就是google针对android的一个配置文件。在文件中找到[Google.NTx86](针对32位平台,64位同理添加)这一行,在下面可以看到很多android设备的驱动信息,例如:
;Google Nexus One%SingleAdbInterface% = USB_Install, USB\VID_18D1&PID_0D02%CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_0D02&MI_01123
这里我们只需要仿照这种文件的格式,复制这些驱动信息,并用2中获取的2A45和0C02来修改,如下:
;MEIZU metal%SingleAdbInterface% = USB_Install, USB\VID_2A45&PID_0C02%CompositeAdbInterface% = USB_Install, USB\VID_2A45&PID_0C02&MI_01123
保存并关闭。
4、卸载掉原来驱动程序,重启电脑。确保手机已经进入开发者模式并允许USB调试,连接方式选择传输文件。然后再次右键电脑->管理->设备管理->其他设备。可以看到ADB Interface选项上有一个问号,表示该驱动没有正确安装。选中ADB Interface并右键选择更新驱动程序软件->浏览计算机以查找驱动程序软件,在浏览中选进我们之前添加了硬件设备驱动信息文件android_winusb.inf的文件夹(D:\android-sdks\extras\google\usb_driver,这里只需要选择文件夹,不需要选择文件),下一步后选择始终安装。
5、安装成功后,在设备管理中会出现一个Android Phone的选项。