Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/189.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 为开发设置设备(????无权限)_Android_Linux_Ubuntu_Adb_Fastboot - Fatal编程技术网

Android 为开发设置设备(????无权限)

Android 为开发设置设备(????无权限),android,linux,ubuntu,adb,fastboot,Android,Linux,Ubuntu,Adb,Fastboot,我正在使用三星galaxy nexus手机(Android 4.0平台) 我正在Ubuntu linux操作系统上开发Android应用程序。我想直接在三星手机设备上运行我的应用程序,因此我执行了以下设置步骤: 在我的项目AndroidManifest.xml文件中,向元素添加了android:debuggable=“true” 在设备上,在设置>安全中启用未知源 在设备上,在设置>开发者选项中启用USB调试 在我的计算机上,创建了包含以下内容的/etc/udev/rules.d/51 andr

我正在使用三星galaxy nexus手机(Android 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
    
    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
    
    但我还是得到了:

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

    为什么??我缺少什么?

    尝试使用用户的主组,而不是
    GROUP=“plugdev”

    对我有效的方法是再次关闭并启动adb服务器。在linux上:
    sudoadb kill服务器
    ,然后
    sudoadb启动服务器
    。然后,它将检测几乎所有现成的设备。

    当您重新启动udev时,杀死adb服务器并启动adb服务器转到android sdk安装路径并在sudo上执行所有操作。然后运行adb设备,它将解决权限问题。

    输入以下命令:

     adb kill-server
     adb start-server
     adb devices
    
    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
    
    adb kill服务器

    sudo./adb启动服务器

    adb设备

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

    当您不是以root用户身份运行adb服务器时,就会发生这种情况。

    在我最终找到答案之前,我什么都做不到:

    我在这里复制文本,以防将来它消失

    创建一个名为/tmp/android.rules的文件,其中包含以下内容(十六进制供应商编号取自供应商列表页面):

    运行以下命令:

     adb kill-server
     adb start-server
     adb devices
    
    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设备
    ,确认现在它有权访问手机

    请注意,可以在
    .rules
    文件中使用
    ,USER=“$LOGINNAME”
    而不是
    ,MODE=“0666”
    ,将
    $LOGINNAME
    替换为您的登录名,即
    id-nu
    打印的内容


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

    我也遇到了同样的问题,解决方案如下:(顺便说一句,您不必为设备设置根目录。)

  • 键入“su”切换到超级用户
  • 您的路径/adb终止服务器
  • 您的路径/adb启动服务器
  • 如果没有发生错误,您可以在根帐户中看到带有“您的路径/adb设备”的设备列表
  • 退出超级用户
  • 现在,您可以在帐户中执行“adb设备”
  • 享受

  • 按照(存档链接)中的说明操作
  • /etc/udev/rules.d/51 android.rules中
    0bb4
    的供应商id替换为
    18d1

    或添加另一行,内容如下:

    SUBSYSTEM=="usb", SYSFS{idVendor}=="18d1", MODE="0666"
    
  • 重新启动计算机或重新启动udev服务

  • 对于使用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连接手机,在编译和运行项目时应该可以检测到。

    在我的ubuntu 12.04 LTS上,我不得不将我的HTC难以置信的USB模式从充电模式更改为媒体模式,然后设备显示在adb下。当然,在这两种情况下,调试都已经开始了。

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


    我使用的是Ubuntu 13.04和Jetbrains 12.1.4,我的Galaxy S3也有同样的问题。 我的问题是,
    idVendor
    04E8
    不正确。 要找到合适的,请将智能手机连接到计算机,并在终端中运行
    lsusb
    。它将列出您的智能手机,如下所示:

    Bus 002 Device 010: ID 18d1:d002 Google Inc.
    
    因此,右边的
    idVendor
    值是
    18d1
    /etc/udev/rules.d/51 android.rules
    中的行必须是:

    SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0666", GROUP="plugdev" 
    

    然后我运行
    sudo udevadm control——重新加载规则
    ,一切正常

    我的设备是积极的,我的操作系统是Ubuntu 14.04 LTS
    所以,我的问题是变量名

    我创建文件/etc/udev/rules.d/51-android.rules 并将SUBSYSTEM==“usb”,SYSFS{idVendor}==“1662”,MODE=“0666”

    我断开了设备 并执行:

    $ sudo udevadm control --reload-rules
    $ sudo service udev restart
    
    在这之后,我再次以开发者模式连接android设备,并

    $ adb devices
    
    List of devices attached 
    1A883XB1K   device
    

    您还可以尝试编辑adb_usb.ini文件,该文件位于/home/username/.android/。此文件包含要连接的设备的id供应商列表。您只需在新行中添加设备的id供应商(每行一个id)。然后重新启动adb服务器并重新安装设备


    在Ubuntu12.10上它对我很有效。

    在Archlinux上,这种情况偶尔会发生。修复方法:

    $ sudo -s
    # adb kill-server
    # adb start-server
    

    试了以上所有的方法,没有一个奏效。。终于工作了
    no permissions (verify udev rules); see [http://developer.android.com/tools/device.html]
    
    sudo -s 
    adb kill-server
    adb start-server
    
    # udevadm control --reload-rules
    
    # usermod -aG adbusers $LOGNAME
    
    ./.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
    
    # Clone this repository
    git clone https://github.com/M0Rf30/android-udev-rules.git
    cd android-udev-rules
    # Copy rules file
    sudo cp -v 51-android.rules /etc/udev/rules.d/51-android.rules
    # OR create a sym-link to the rules file - choose this option if you'd like to update your udev rules using git.
    sudo ln -sf "$PWD"/51-android.rules /etc/udev/rules.d/51-android.rules
    # Change file permissions
    sudo chmod a+r /etc/udev/rules.d/51-android.rules
    # If adbusers group already exists remove old adbusers group
    groupdel adbusers
    # add the adbusers group if it's doesn't already exist
    sudo mkdir -p /usr/lib/sysusers.d/ && sudo cp android-udev.conf /usr/lib/sysusers.d/
    sudo systemd-sysusers # (1)
    # OR on Fedora:
    groupadd adbusers
    # Add your user to the adbusers group
    sudo usermod -a -G adbusers $(whoami)
    # Restart UDEV
    sudo udevadm control --reload-rules
    sudo service udev restart
    # OR on Fedora:
    sudo systemctl restart systemd-udevd.service
    # Restart the ADB server
    adb kill-server
    # Replug your Android device and verify that USB debugging is enabled in developer options
    adb devices
    # You should now see your device
    
    sudo usermod -aG plugdev $LOGNAME
    
    sudo usermod -aG plugdev $LOGNAME
    sudo apt-get install android-sdk-platform-tools-common