我使用的是三星galaxy nexus手机(Android 4.0平台)。
我正在开发Ubuntu linux操作系统上的Android应用程序。我想直接在三星手机设备上运行我的应用程序,所以我执行了以下设置步骤:
在我的项目AndroidManifest.xml文件中,添加android:debuggable="true"到<application>元素
在设备的“设置”中,>安全启用未知源
在设备上,在设置>开发人员选项中启用了USB调试
在我的电脑上,创建了/etc/udev/rules.d/51-android.rules文件,内容如下:
子系统=="usb", ATTR{idVendor}=="04E8", MODE="0666", GROUP="插件开发"
在我的电脑上,执行chmod a+r /etc/udev/rules.d/51-android.rules命令
然后,在我的电脑上,我打开一个终端,执行adb设备命令,我得到:
List of devices attached
???????????? no permissions
因为我没有看到我的设备,但只有????????????没有权限,然后运行以下命令:
adb kill-server
adb start-server
adb devices
但我还是有:
List of devices attached
???????????? no permissions
为什么?我错过了什么?
我知道这可能有点晚,但这是一篇关于如何手动添加Android ADB USB驱动程序的非常好的文章。在Ubuntu 14.04 LTS中手动添加Android ADB USB驱动
编辑添加链接内容
步骤
注意:请确保已在USB调试模式下连接Android设备
打开终端(CTRL + ALT + T),输入命令:
lsusb
现在你可能会得到类似的回复:
总线002设备013:ID 283b:1024
注意:
参考此总线002设备008:ID 283b:1024
{idVendor} = = " 283 "
{idProduct} = = " 1024 "
现在输入以下命令:
Sudo gedit /etc/udev/rules.d/51-android.rules
这将创建android规则文件(51-android.rules)或打开指定位置的现有文件(/etc/udev/rules.d)
在这个文件中添加新行:
子系统== " usb ", ATTRS{idVendor}== " 283b ", ATTRS{idProduct}== " 1024″,MODE= " 0666″
注意:用您的设备值编辑idVendor和idProduct值。
保存并关闭。
现在输入以下命令:
Sudo chmod a+rx /etc/udev/rules.d/51-android.rules -授予读/执行权限
sudo service udev restart—重启udev服务
现在我们必须将idVendor添加到adb_usb.ini中。输入如下命令:
cd ~ / .android
中adb_usb.ini
添加以下值
0 x283b
这只是0x(idVendor值)。将值替换为。尊重你的设备价值
保存并关闭文件。
现在输入以下命令:
Sudo服务udev重启
拔出Android设备并重新连接。
现在输入以下命令:
亚行kill-server
亚洲开发银行设备
好了!必须列出您的设备。
拷贝自Ubuntu 14.04 LTS中手动添加Android ADB USB驱动
为我工作。
关于这个问题,有很多糟糕的答案,从坚持以根方式运行adb(不应该被吹捧为唯一的解决方案,甚至不应该被推荐)到解决完全不相关的问题。
下面是一个最简单、最通用的方法,可以同时处理所有adb和fastboot设备的权限:
echo 'ACTION=="add", SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ENV{ID_USB_INTERFACES}=="*:ff420?:*", MODE="0666"' | sudo tee /etc/udev/rules.d/99-android.rules
sudo udevadm control --reload-rules
sudo udevadm trigger --verbose --action=add --subsystem-match=usb
或者你可以使用我发布的这个要点稍长的版本。
至于OP在他的问题中做错的具体事情——在编辑.rules文件后没有重新加载udev规则。
此外,OP也没有告诉他的手机上有哪个Android版本(又名ROM)。idVendor值是在软件中设置的,因此它取决于ROM。所以他在最初的规则中使用的04E8的值只适用于带有三星库存ROM的设备。但这对这个udev规则来说不是问题——它匹配所有具有adb或fastboot接口的设备,而不管它们的VendorID。
对于那些使用debian的人来说,在Ubuntu下设置设备以创建“/etc/udev/rules.d/51-android.rules”文件的指南不起作用。我听从了这里的指示。把同样的写在这里供参考。
以超级用户身份编辑此文件
sudo nano /lib/udev/rules.d/91-permissions.rules
找到与此相似的文本
# usbfs-like devices
SUBSYSTEM==”usb”, ENV{DEVTYPE}==”usb_device”, \ MODE=”0664″
然后将模式更改为0666,如下所示
# usbfs-like devices
SUBSYSTEM==”usb”, ENV{DEVTYPE}==”usb_device”, \ MODE=”0666″
这允许adb工作,但是我们仍然需要设置设备,以便它可以被识别。我们需要以超级用户身份创建这个文件,
sudo nano /lib/udev/rules.d/99-android.rules
并输入
SUBSYSTEM==”usb”, ENV{DEVTYPE}==”usb_device”, ATTRS{idVendor}==”0bb4″, MODE=”0666″
上面一行是HTC的,请关注@grebulon的帖子查看完整列表。
保存文件,然后以超级用户重新启动udev
sudo /etc/init.d/udev restart
通过USB连接手机,当你编译和运行一个项目时,它应该被检测到。