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

为什么?我错过了什么?


当前回答

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

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

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

其他回答

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

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

享受。

尝试使用用户的主组而不是GROUP="plugdev"。

使用M0Rf30/android-udev-rules GitHub社区维护udev-rules

https://github.com/M0Rf30/android-udev-rules/blob/master/51-android.rules

这是我迄今为止见过的最完整的udev-rules列表,甚至超过了目前官方文档中推荐的sudo apt-get install android-tools-adb,它为我解决了这个问题。

没有拔掉

所有提供的答案都假设您能够拔下并重新连接USB线。在这种情况下,这是不可能的(例如,当你是远程的),你可以做下面的事情,基本上做建议的udev规则将在重新插入:

lsusb

找到你关心的设备,例如:

Bus 003 Device 005: ID 18d1:4ee4 Google Inc. Nexus

记下它所在的公交车号码,然后执行,例如003路公交车:

sudo chmod a+w /dev/bus/usb/003/*

显然,这可能比您想要的更宽松(可能有更多的设备连接,而不仅仅是这一个),但您可以理解。

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

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

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