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

为什么?我错过了什么?


当前回答

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

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

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

其他回答

请按照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服务。

我知道这可能有点晚,但这是一篇关于如何手动添加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驱动

为我工作。

没有拔掉

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

lsusb

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

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

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

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

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

sudo usermod -aG plugdev $LOGNAME

这个命令对我很管用

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

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

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

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

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

我使用的是ubuntu 20.04LTS。