设置设备进行开发(????????????没有权限)

新手上路,请多包涵

我正在使用三星 Galaxy Nexus 手机( Android 4.0 平台)。

我正在 Ubuntu linux 操作系统上开发 Android 应用程序。我想直接在三星手机设备上运行我的应用程序,所以我执行了以下设置步骤:

  1. 在我的项目 AndroidManifest.xml 文件中,添加 android:debuggable="true"<application> 元素

  2. 在设备上,在 Settings > Security enabled Unknown sources

  3. 在设备上,在 设置 > 开发人员选项 中启用 USB 调试

  4. 在我的电脑上,创建了 /etc/udev/rules.d/51-android.rules 文件,内容如下:

    SUBSYSTEM=="usb", ATTR{idVendor}=="04E8", MODE="0666", GROUP="plugdev"

  1. 在我的电脑上,运行 chmod a+r /etc/udev/rules.d/51-android.rules 命令

然后,在我的电脑上打开一个终端并执行 adb devices 命令,我得到:

 List of devices attached
????????????    no permissions

由于我没有看到我的设备,而只有 ???????????? no permissions ,因此我运行以下命令:

  adb kill-server
 adb start-server
 adb devices

但我仍然得到:

 List of devices attached
????????????    no permissions

为什么?我错过了什么?

原文由 Leem.fin 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 470
2 个回答

对我有用的是再次杀死并启动 adb 服务器。在 linux 上: sudo adb kill-server 然后 sudo adb start-server 。然后它将检测到几乎所有开箱即用的设备。

原文由 WarrenFaith 发布,翻译遵循 CC BY-SA 3.0 许可协议

在我最终在这里找到答案之前,没有什么对我有用: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 以确认它现在有权访问手机。

Please note that it’s possible to use , USER="$LOGINNAME" instead of , MODE="0666" in the .rules file, substituting $LOGINNAME for your login name, ie what id -nu 打印。

在某些情况下,可能需要为 udev 规则文件指定一个接近结尾的名称,例如 z51-android.rules

原文由 grebulon 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题