问题描述
我是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
。让我们知道发生了什么。
第三种解决办法
你必须改变两件事:
-
将第一个’ATTR{idProduct}’更改为51-android.rules文件中的’ATTR{idVendor}’。
-
从终端运行以下命令:
sudo ./adb kill-server sudo ./adb start-server sudo ./adb devices
第四种办法
这可能是一个微不足道的错误,正如我在51-android.rules中看到的那样,你已经将idProduct参数加倍并且没有idVendor,尝试简单的重命名。