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

为什么?我错过了什么?


当前回答

我尝试了上述的一些解决方案:

重启adb服务器 修改51-android.rules 把我自己加入adbusers组

它成功过一次。设备要求我授权PC,之后,一切正常。

问题是当我尝试在电脑重启后连接设备时,又出现了同样的问题。 为了克服现在这个问题,我不得不手动撤销设置->开发人员选项->USB调试授权,然后设备再次要求我授权PC,因此最终工作了。

还有一次,前面提到的撤销USB调试授权的解决方案不起作用,为了触发设备的身份验证,我不得不手动禁用/启用 设置->开发人员选项->USB调试

我使用的是ubuntu 20.04LTS。

其他回答

对于那些使用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连接手机,当你编译和运行一个项目时,它应该被检测到。

没有拔掉

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

lsusb

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

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

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

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

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

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

我的设备是POSITIVO,操作系统是Ubuntu 14.04 LTS 我的问题在于变量名

我创建文件/etc/udev/rules.d/51-android.rules and put子系统=="usb", SYSFS{idVendor}=="1662", MODE="0666"

我断开了设备 和执行:

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

在此之后,我再次以开发者模式连接android设备

$ adb devices

List of devices attached 
1A883XB1K   device

以上都试过了,都没用。当我从MTP切换到相机(PTP)时,终于工作了。