当前位置: 首页>>技术问答>>正文


Ubuntu没有检测到我的Android设备

, , ,

问题描述

我是android的新手。我刚下载并安装了android sdk。现在,当我从eclipse运行应用程序时,我的设备没有被检测到。我用google搜索并将其作为我的解决方案,但这也没有奏效。

这是51-android.rules

SUBSYSTEMS=="usb", ATTR{idProduct}=="0bb4",  ATTR{idProduct}=="0c03", MODE="0666", GROUP="plugindev", OWNER="<username>"

之后我重启了我的笔记本电脑,并运行了这个命令:

username@laptopname:~/Android/adt-bundle/sdk/platform-tools$ adb devices

我得到的输出是:

* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attached 
????????????    no permissions

编辑

crazydeveloper@crazydeveloper:~$ lsusb
Bus 002 Device 004: ID 0bb4:0c03 HTC (High Tech Computer Corp.) 
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 04f2:b337 Chicony Electronics Co., Ltd 
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
crazydeveloper@crazydeveloper:~$ ls -l /dev/bus/usb/004/
ls: cannot access /dev/bus/usb/004/: No such file or directory
crazydeveloper@crazydeveloper:~$ 

编辑:2

在这里提交的答案之后是我得到的输出:

crazydeveloper@crazydeveloper:~$ ls -l /dev/bus/usb/002
total 0
crw-rw-r--  1 root root    189, 128 May  7 09:45 001
crw-rw-r--+ 1 root root    189, 129 May  7 09:45 002
crw-rw-rw-  1 root plugdev 189, 130 May  7 09:48 003

我正在使用Micromax Canvas 2.2 A114 – Android版本4.2.2

请帮我。谢谢。

最佳解决办法

好的,这里是让这个工作的所有步骤。我在网上找到的所有回复都有问题,到处都是零碎的,没有任何特定的顺序,没有单一的工作解决方案,(运行Android Studio,Jmonkey 3D和Ubuntu 14.04)

如果adb设备显示Android设备为????????? (无权限)请按照以下说明操作:

1)创建文件/etc/udev/rules.d/51-android.rules

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

2)复制并粘贴以下内容:

SUBSYSTEM=="usb", ATTRS{idVendor}=="0bb4", MODE="0666", GROUP="plugdev"  
SUBSYSTEM=="usb", ATTRS{idVendor}=="0e79", MODE="0666", GROUP="plugdev"  
SUBSYSTEM=="usb", ATTRS{idVendor}=="0502", MODE="0666", GROUP="plugdev"  
SUBSYSTEM=="usb", ATTRS{idVendor}=="0b05", MODE="0666", GROUP="plugdev"  
SUBSYSTEM=="usb", ATTRS{idVendor}=="413c", MODE="0666", GROUP="plugdev"  
SUBSYSTEM=="usb", ATTRS{idVendor}=="0489", MODE="0666", GROUP="plugdev"  
SUBSYSTEM=="usb", ATTRS{idVendor}=="091e", MODE="0666", GROUP="plugdev"  
SUBSYSTEM=="usb", ATTRS{idVendor}=="18d1", MODE="0666", GROUP="plugdev"  
SUBSYSTEM=="usb", ATTRS{idVendor}=="0bb4", MODE="0666", GROUP="plugdev"  
SUBSYSTEM=="usb", ATTRS{idVendor}=="12d1", MODE="0666", GROUP="plugdev"  
SUBSYSTEM=="usb", ATTRS{idVendor}=="24e3", MODE="0666", GROUP="plugdev"  
SUBSYSTEM=="usb", ATTRS{idVendor}=="2116", MODE="0666", GROUP="plugdev"  
SUBSYSTEM=="usb", ATTRS{idVendor}=="0482", MODE="0666", GROUP="plugdev"  
SUBSYSTEM=="usb", ATTRS{idVendor}=="17ef", MODE="0666", GROUP="plugdev"  
SUBSYSTEM=="usb", ATTRS{idVendor}=="1004", MODE="0666", GROUP="plugdev"  
SUBSYSTEM=="usb", ATTRS{idVendor}=="22b8", MODE="0666", GROUP="plugdev"    
SUBSYSTEM=="usb", ATTRS{idVendor}=="0409", MODE="0666", GROUP="plugdev"  
SUBSYSTEM=="usb", ATTRS{idVendor}=="2080", MODE="0666", GROUP="plugdev"  
SUBSYSTEM=="usb", ATTRS{idVendor}=="0955", MODE="0666", GROUP="plugdev"  
SUBSYSTEM=="usb", ATTRS{idVendor}=="2257", MODE="0666", GROUP="plugdev"  
SUBSYSTEM=="usb", ATTRS{idVendor}=="10a9", MODE="0666", GROUP="plugdev"  
SUBSYSTEM=="usb", ATTRS{idVendor}=="1d4d", MODE="0666", GROUP="plugdev"  
SUBSYSTEM=="usb", ATTRS{idVendor}=="0471", MODE="0666", GROUP="plugdev"  
SUBSYSTEM=="usb", ATTRS{idVendor}=="04da", MODE="0666", GROUP="plugdev"  
SUBSYSTEM=="usb", ATTRS{idVendor}=="05c6", MODE="0666", GROUP="plugdev"  
SUBSYSTEM=="usb", ATTRS{idVendor}=="1f53", MODE="0666", GROUP="plugdev"  
SUBSYSTEM=="usb", ATTRS{idVendor}=="04e8", MODE="0666", GROUP="plugdev"  
SUBSYSTEM=="usb", ATTRS{idVendor}=="04dd", MODE="0666", GROUP="plugdev"  
SUBSYSTEM=="usb", ATTRS{idVendor}=="0fce", MODE="0666", GROUP="plugdev"  
SUBSYSTEM=="usb", ATTRS{idVendor}=="0930", MODE="0666", GROUP="plugdev"  
SUBSYSTEM=="usb", ATTRS{idVendor}=="19d2", MODE="0666", GROUP="plugdev" 

3)运行以下命令以更改文件权限:

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

4)通过USB连接手机并运行以下命令:

lsusb

寻找您的设备示例(Nexus 5):

Bus 003 Device 074: ID 18d1:4ee7 Google Inc.

对于Nexus 5,供应商ID为18d1,我的总线位于总线”003″如果在使用lsusb插入设备时没有看到更改,则可能是USB电缆为charge-only。

5)现在使用以下命令重新加载规则:

sudo udevadm control --reload-rules
sudo service udev restart
sudo udevadm trigger

6)验证设备现在允许plugdev用户组访问

ls -l /dev/bus/usb/<bus number from step 4>

例:

ls -l /dev/bus/usb/003

crw-rw-rw- 1 root plugdev 189, 329 Jul  3 18:23 074

7)运行adb设备以确认权限是正确的并享受!

注意:如果您尚未创建plugdev组并向其添加了用户名(如果权限被拒绝,则在命令之前添加”sudo”):

1)添加plugdev组:

groupadd plugdev

2)将您的用户名添加到plugdev组(useradd -G {group-name}用户名):

useradd -G plugdev billy

3)重启udev(您可能需要注销并重新登录才能更新用户组):

sudo service udev restart

次佳解决办法

尝试使用plugdev组而不是plugindev。然后重启udev:

sudo udevadm control --reload-rules
sudo service udev restart

如果这不起作用,请找出您的设备与lsusb的确切位置。然后检查权限:

ls -l /dev/bus/usb/YOUR_USB_BUS_NO/

lsusb给我们的事实:

Bus 002 Device 004: ID 0bb4:0c03 HTC (High Tech Computer Corp.)

表示您的移动设备作为设备004连接到总线002.因此,udev创建了设备对象/dev/bus/usb/002/004

请使用命令向我们显示设备权限:

ls -l /dev/bus/usb/002/004

作为临时解决方法,您可以使用此命令使设备全局可读/可写(确保您的手机已插入):

sudo chmod 666 /dev/bus/usb/002/004

然后再次尝试adb devices

另外我注意到在udev规则的最后你有OWNER="<username>"。你确实用OWNER="crazydeveloper"替换了它,不是吗?

你的权限很好。 udev拿起设备并将其权限设置为666,将组设置为plugdev。由于某种原因,它没有将所有者设置为疯狂开发者,但这并不重要。

确保您是group plugdev的成员。使用此命令:

sudo useradd -G plugdev crazydeveloper

然后注销,拔下手机,再次登录,插上电源并再次尝试adb devices。让我们知道发生了什么。

第三种解决办法

你必须改变两件事:

  1. 将第一个’ATTR{idProduct}’更改为51-android.rules文件中的’ATTR{idVendor}’。

  2. 从终端运行以下命令:

    sudo ./adb kill-server
    sudo ./adb start-server
    sudo ./adb devices
    

第四种办法

这可能是一个微不足道的错误,正如我在51-android.rules中看到的那样,你已经将idProduct参数加倍并且没有idVendor,尝试简单的重命名。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/2903.html,未经允许,请勿转载。