adb devices识别不到设备或者提示no permissions

如果之前是正常的,突然识别不了设备了:

  • 先拔掉USB线,两端都拔掉,然后模块关机重启,重启后再插上USB线,看是否能识别
  • 如果不行,换个USB口再试试
  • 如果还不能识别,按照同样的流程,再把电脑也关机重启试试

如果一开始就不正常,先检查开发者选项有没有打开调试模式,user版本的系统默认都没有打开,需要手动去打开

不成功请尝试

1、执行

lsusb

查看USB的VID和PID

image-20221130142444376

2、执行

sudo gedit /etc/udev/rules.d/51-android.rules

在文件中添加

SUBSYSTEM=="usb", ATTR{idVendor}=="05c6",ATTRS{idProduct}=="901f",MODE="0666"

其中ATTR{idVendor}为冒号左边的值,ATTRS{idProduct}为冒号右边的值

3、给51-android.rules文件添加权限

sudo chmod a+rx /etc/udev/rules.d/51-android.rules

4、重启udev服务

sudo service udev restart
#或者
sudo /etc/init.d/udev restart

5、重新拔插USB,然后重启adb

adb kill-server
adb devices

如果还没有显示设备,则执行

sudo gedit ~/.android/adb_usb.ini

复制0x05c6到该文件,然后保存,然后重启udev服务后重新拔插USB

一般到这里都能OK,如果仍然不成功,继续往下执行

sudo gedit /lib/udev/rules.d/50-udev-default.rules

查找关键字usb_device,修改权限为MODE=“0666”

SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", MODE="0666"

同时在该目录下添加新的rules文件

sudo gedit /lib/udev/rules.d/51-android.rules

添加内容

SUBSYSTEM="usb", ENV{DEVTYPE}=="usb_device", ATTRS{idVendor}=="05c6", MODE="0666"

保存退出后,再设置一下权限

sudo chmod a+rx /lib/udev/rules.d/51-android.rules

重启udev服务,重新拔插USB,然后重启adb

如果以上所有方式都试过了,还是不成功,那么很有可能就是多个adb冲突了,什么意思呢

就是当我重装Ubuntu后会安装各种环境,其中会通过sudo apt-get install adb或者sudo apt-get android-tools-adb来安装adb,这种方式会默认安装到/usr/bin/目录下,通过which adb可查看adb安装路径,而当我安装了Android Studio之后,再在AS里面下载SDK时,SDK会自带adb,而且是比较新的版本,可以进入到SDK根目录下的platform-tools目录里,执行./adb version查看adb版本,而SDK里面的adb似乎会优先于/usr/bin/adb执行,而我们执行adb devces时,其实是执行的/usr/bin/adb,而此时adb的端口号5037已经被SDK的adb占用了,当然不会生效啦,具体验证方法:可以分别进入到/SDK根目录/platform-tools/和/usr/bin/,然后执行./adb devices,看看哪个能显示设备,就表明哪个正在占用5037的端口,也可以通过查看5037端口所占用的程序来证明

好啦,说了这么多,如何解决这个问题呢,很简单,就是把/usr/bin/adb卸载掉

执行

sudo apt-get remove adb

然后把platform-tools/adb拷贝到/usr/bin/目录下,然后给adb增加权限

sudo chmod 777 /usr/bin/adb

这样再在任何目录使用adb devices查看设备时就不会有问题啦!

后期还遇到这种情况,adb总是反复断开重连,当不断执行adb devices时会出现一会儿有,一会儿没有的情况,执行fastboot devices不会出现这种情况,但是单刷img镜像时会报错:FAILED (Write to device failed (Protocol error)),这种问题的原因可能有以下几种情况(都是根据google楼主提供的):

  • 数据线插在USB3.0的接口上了

    插到USB2.0的接口上即可

  • 数据线的问题

    换一根短一点的USB线

  • usb线接触不良

  • adb端口被其他进程占用,比如Android Studio,wps,电脑管家,电脑手机助手等

猜你喜欢

转载自blog.csdn.net/u013936727/article/details/128114912