我使用的是三星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驱动

为我工作。

其他回答

你不应该像其他答案建议的那样以root用户运行adb服务器。相反,如果你正在使用Arch Linux,请执行以下操作:

使用Pacman软件安装android-udev包 重新加载udev规则: # udevadm control——重新加载规则 将自己加入adbusers组,然后注销并登录: # usermod -aG adbusers $LOGNAME

来源:https://wiki.archlinux.org/index.php/android Configuring_adb

在我最终找到答案之前,什么都不管用: http://ptspts.blogspot.co.il/2011/10/how-to-fix-adb-no-permissions-error-on.html

我把这段文字复制在这里,以防将来它会消失。

创建一个名为/tmp/android.rules的文件,包含以下内容(来自供应商列表页面的十六进制供应商编号):

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

执行如下命令:

sudo cp /tmp/android.rules /etc/udev/rules.d/51-android.rules
sudo chmod 644   /etc/udev/rules.d/51-android.rules
sudo chown root. /etc/udev/rules.d/51-android.rules
sudo service udev restart
sudo killall adb

断开手机和电脑之间的USB线。

重新连接电话。

运行adb devices确认现在它有权限访问电话。

请注意,在.rules文件中,可以使用USER="$LOGINNAME"而不是,MODE="0666",将$LOGINNAME替换为您的登录名,即id -nu打印的内容。

在某些情况下,可能需要给udev规则文件一个接近末尾的名称,例如z51-android.rules。

对我来说有效的方法是关闭并重新启动adb服务器。linux操作系统:sudo adb kill-server,然后sudo adb start-server。然后,它将检测出几乎所有开箱即用的设备。

我也遇到过同样的问题,解决方法是:(顺便说一下,你不需要在你的设备上安装root。)

输入“su”切换为超级用户。 路径/亚行kill-server。 路径/亚行启动服务器。 如果没有错误,在root帐号下可以看到“your-path/adb devices”的设备列表。 退出超级用户。 现在您可以在您的帐户中执行“adb设备”。

享受。

请按照http://developer.android.com/guide/developing/device.html(Archived链接上的说明进行操作) 将/etc/udev/rules.d/51-android.rules中0bb4的供应商id替换为18d1 或者再加一行: 子系统=="usb", SYSFS{idVendor}=="18d1", MODE="0666" 重新启动计算机或重新启动udev服务。