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

为什么?我错过了什么?


当前回答

我用su,它开始工作了。当我与普通用户一起使用Jetbrains时,我看到了这个问题,但在su模式下重新启动Jetbrains后,我可以看到我的设备而不做任何事情。

我使用的是Ubuntu 13.04和Jetbrains 12.1.4

其他回答

在Archlinux中,这种情况偶尔会发生。解决办法:

$ sudo -s
# adb kill-server
# adb start-server

使用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,它为我解决了这个问题。

您也可以尝试编辑adb_usb.ini文件,位于/home/username/.android/。此文件包含要连接的设备的id供应商列表。您只需在新行中添加设备的id供应商(每行一个id)。然后重新启动adb服务器并重新插入设备。

它在Ubuntu 12.10上对我有效。

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

请不要按照解决方案建议使用sudo (sudo adb start-server)!这运行adb作为根(管理员),它不应该像那样运行!!这是一个糟糕的解决方案!

任何以root身份运行的东西都可以在系统中做任何事情,如果它创建或修改一个文件,可以将其权限更改为仅供root使用。再次,不要!

正确的做法是设置你的系统,让用户有权限,看看我写的这个指南如何正确地做到这一点。