提问者:小点点

设置用于开发的设备(????????????没有权限)


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

    为什么? 我错过了什么?


  • 共3个答案

    匿名用户

    对我来说有效的是杀死并重新启动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-serversudo./ADB start-serverADB devices

    问题是您没有以超级用户身份运行adb服务器。