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

为什么?我错过了什么?


当前回答

不管怎样,我解决这个问题的方法(在Ubuntu上)。

定义了在什么情况下需要运行这些命令。对于大多数ubuntu用户来说,有一个主文件夹(隐藏文件.bashrc)。 您可以在其中记录这些命令的启动。但是当您在控制台中输入bash命令时,这些命令将被触发。 因为我有一个shell .zshrc,然后我做了以下工作: 打开控制台:gedit .zshrc

当文件打开时,添加以下一行:

./.add_device_permissions.sh

在此之前或之后,我们需要创建这个文件:.add_device_permissions.sh,我们在其中写入以下内容:

#!/bin/bash
# Add permissions
ADB="/home/vadimm/Android/Sdk/platform-tools/adb"
$ADB devices
$ADB kill-server
cat .permissions_redmi_note | sudo -S $ADB devices
$ADB kill-server
cat .permissions_redmi_note | sudo -S $ADB devices

我们还需要创建.permissions_redmi_note,在这里我们需要硬编码我们的密码。

不要添加到文件.zshrc不必要,我们可以在启动系统本身时指定路径:Startup Applications Preferences

我们按下“添加”并写入我们的命令:/home/vadim /.add_device_permissions.sh

你也可以尝试在命令行下一个命令: 亚行。/设备 亚行kill-server。/ Sudo ./adb设备 亚行kill-server。/ 亚行。/设备

其他回答

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

如果任何人在使用adb设备时遇到以下错误消息

no permissions (verify udev rules); see [http://developer.android.com/tools/device.html]

执行以下操作

sudo -s 
adb kill-server
adb start-server

这为我解决了自定义构建android设备上的问题

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

这快把我逼疯了。首先,这里的一些老建议会让你的arch linux系统变砖。我不得不从备用USB启动来撤销规则破解。在我的一个案例中,我无法让我的android在插入USB时提示授权主机,并且有和其他人一样的症状:

$ sudo adb devices
List of devices attached
89MY08NPA       no permissions; see [http://developer.android.com/tools/device.html]

身为根并不重要。

进入android的USB设置,确保“使用USB”设置为“文件传输”。由于某种原因,我的手机被设置为没有数据传输,尽管我已经在这款手机上做了多年的android开发工作。一定是谷歌的某些更新将其翻转到另一个设置。

一旦将其设置为文件传输,就会提示允许从主机调试并恢复正常

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

我使用的是Ubuntu 13.04和Jetbrains 12.1.4