我使用的是三星galaxy nexus手机(安卓4.0平台)。
我正在Ubuntu linux操作系统上开发Android应用程序。 我想直接在三星手机设备上运行我的应用程序,因此我执行了以下设置步骤:
>
在我的项目androidmanifest.xml
文件中,向
元素添加了android:debuggable=“true”
在设备上的“设置”>; 启用安全的未知源
在设备上的“设置”>; 开发人员选项启用的USB调试
在我的计算机上,创建了/etc/udev/rules.d/51-android.rules
文件,其内容如下:
SUBSYSTEM=="usb", ATTR{idVendor}=="04E8", MODE="0666", GROUP="plugdev"
在我的计算机上,运行chmoda+r/etc/udev/rules.d/51-android.rules
命令
然后,在我的计算机上打开一个终端并执行adb devices
命令,得到:
List of devices attached
???????????? no permissions
因为我没有看到我的设备,只看到????????????? 没有权限
,然后运行以下命令:
adb kill-server
adb start-server
adb devices
但我还是得到了:
List of devices attached
???????????? no permissions
为什么? 我错过了什么?
对我来说有效的是杀死并重新启动adb服务器。 在Linux上:sudo adb kill-server
,然后sudo adb start-server
。 然后它将检测几乎所有开箱即用的设备。
在我终于找到答案之前,我什么都不起作用:http://ptspts.blogspot.co.il/2011/10/how-to-fix-adb-no-permissions-error-on.html
我在这里抄写文字以防将来消失。
创建一个名为/tmp/android.rules的文件,其内容如下(十六进制供应商编号取自供应商列表页面):
SUBSYSTEM=="usb", ATTRS{idVendor}=="0bb4", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0e79", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0502", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0b05", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="413c", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0489", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="091e", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="18d1", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0bb4", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="12d1", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="24e3", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="2116", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0482", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="17ef", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="1004", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="22b8", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0409", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="2080", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0955", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="2257", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="10a9", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="1d4d", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0471", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="04da", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="05c6", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="1f53", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="04e8", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="04dd", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0fce", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0930", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="19d2", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="1bbb", MODE="0666"
运行以下命令:
sudo cp /tmp/android.rules /etc/udev/rules.d/51-android.rules
sudo chmod 644 /etc/udev/rules.d/51-android.rules
sudo chown root. /etc/udev/rules.d/51-android.rules
sudo service udev restart
sudo killall adb
断开电话和计算机之间的USB电缆。
重新连接电话。
运行ADB Devices
以确认它现在具有访问电话的权限。
请注意,可以在.rules
文件中使用,user=“$loginname”
而不是,mode=“0666”
,用$loginname
代替您的登录名,即ID-NU
打印的内容。
在某些情况下,可能需要给udev规则文件一个排序接近末尾的名称,例如z51-android.rules
。
请输入以下命令:
ADB kill-server
sudo./ADB start-server
ADB devices
问题是您没有以超级用户身份运行adb服务器。