运行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的选项。
1ADB命令前,首先必须确保电脑安装了手机或平板电脑的驱动程序,可以从对应官方网站下载与手机类型相匹配的驱动,也可以通过刷机精灵来安装手机驱动 。
2当运行“adb shell“命令出现“adb server is out of date,killing...”提示时,可以先执行“adb nodaemon server”来查看“adb server”端口的信息。如图所示:
3待得到“ADB Server”端口信息后,执行“netstat -ano | findstr "5037"命令,其中“5037”为“ADB Server”端口号。
4从返回的结果列表中找到“TCP”项右侧的数字,如图所示为“5240”。此序号即为当前占用“ADB Server”端口的进程号,我们需要中止此进程。
5执行命令“tskill 5240"即可中止占用“ADB Server”端口的进程号。如图所示:6最后再次执行“ADB Shell”命令,就可以正常进入Shell管理操作模式啦。
ndroid 设备底层是 linux 系统。 shell 是 linux 系统的字符交互界面。进入 android 设备的 shell 。只需要将手机练到电脑上,执行 abd devices 可以看到 device 状态。否则是手机驱动没安装好。然后 执行 adb shell 就进入 shell 了。