Android Studio将物理设备识别为空?

Jor*_*914 86 adb android-studio

我一直在开发Android Application for Android(SDK min版本14),我通常使用平板电脑进行测试Samsung Galaxy 2 and Nexus 7.但是,当我尝试运行应用程序时(通过单击"运行" AndroidStudio),AS无法识别平板电脑信息,如下图所示.

设备是空的

有趣的是,如上图所示,AS也检测到设备sdk,API 1因为它的Android版本是4.2.2 平板电脑已经设置为USB debugging在开发人员选项中接受" ",我已尝试重新启动平板电脑,并重新启动AS ,但我仍然遇到同样的问题(一切都很好nexus 7 and Samsung Galaxy 2).

我正在使用的平板电脑/设备是"VeryKool"T742

Environment information:
 OS: ubuntu
 AndroidStudio version: 0.8.6

 Tablet Android version:4.2.2
 Tablet Kernel version: 3.4.5
 App min SDK: 14
Run Code Online (Sandbox Code Playgroud)

Jor*_*914 158

好吧所以我终于找到了问题,显然在这个设备上你必须设置连接为摄像头(即使已启用USB调试)

在此输入图像描述

同时此链接描述了设置过程

  • 我一直在寻找关于这个问题的日子,解决方案是将它连接成"相机",这很奇怪但是工作!感谢分享 (3认同)

Joe*_*Kir 57

当adb没有连接正确的权限时,我已经看过几次这个错误.

在终端尝试

~/Android/Sdk/platform-tools> ./adb devices    
Run Code Online (Sandbox Code Playgroud)

如果它返回

<deviceIdentifier> no permissions
Run Code Online (Sandbox Code Playgroud)

然后你需要用正确的烫发重启adb

~/Android/Sdk/platform-tools$> ./adb kill-server
~/Android/Sdk/platform-tools$> sudo ./adb devices
Run Code Online (Sandbox Code Playgroud)

如果那样有效,那么你就会得到

List of devices attached
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
<deviceIdentifier>  device
Run Code Online (Sandbox Code Playgroud)

之后Android Studio中不再出现Sdk版本解析问题.


小智 21

将设备连接到Ubuntu系统后,只需运行此命令:

adb devices
Run Code Online (Sandbox Code Playgroud)

这适合我.

注意:确保您已在手机中选择了文件传输选项.


RES*_*rey 15

在Ubuntu上,我的Pixel XL在8.0上,我必须在插入计算机时执行此操作:

设置 - >已连接设备 - > USB - >更改为"传输文件"


hb0*_*hb0 11

与我的Nexus 5X有同样的问题.我的第一个解决方案是lsusb这里提到的解决方

永久的解决方案是添加udev规则,以便您始终可以访问该设备.

  • 使用命令查找您的设备sudo nano /etc/udev/rules.d/51-android.rules,输出例如:

    Bus 001 Device 003: ID 18d1:4ee7 Google Inc.
    
    # This means: BUS=001, DEVICE=003, VENDOR=18d1, PRODUCT=4ee7
    
    Run Code Online (Sandbox Code Playgroud)
  • 检查设备的权限,例如adb kill-server:

    ls -l /dev/bus/usb/001/008
    
    # Output: crw-rw-r-T 1 root root 189, 8 Nov 10 18:34 /dev/bus/usb/001/003
    # Unless you are root, you are missing the permissions to access the device
    
    Run Code Online (Sandbox Code Playgroud)
  • lsusb使用以下内容创建udev规则文件,但将idVendor和idProduct替换为lsusb的输出:

    SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee7", MODE="0660", 
    GROUP="plugdev", SYMLINK+="android%n"
    
    # You need to replace "18d1" and "4ee7" with your output of `lsusb` above
    
    Run Code Online (Sandbox Code Playgroud)
  • 拔下插头并重新插入设备.现在应该始终可以识别它.如果没有,请重新启动adb服务器.

资料来源:http://www.janosgyerik.com/adding-udev-rules-for-usb-debugging-android-devices/


jay*_*i93 6

在Ubuntu上使用Android Studio时遇到同样的问题.显然对我来说,解决方法是将设备的USB连接模式设置为MTP.


小智 5

首先检查adb版本:如果它给出类似的输出

Android Debug Bridge version 1.0.32
Run Code Online (Sandbox Code Playgroud)

然后只需重启守护进程.

sudo adb kill-server
sudo adb start-server
Run Code Online (Sandbox Code Playgroud)

否则首先安装adb并重启守护进程在ubuntu 16.04.3中为我工作


Dha*_*val 5

最近,我在 Vivo 和 MI 手机上遇到了同样的问题。我已经尝试了这个线程中描述的所有内容。我尝试以 MTP、PTP 的身份连接;但没有任何效果。

经过多次重试,我找到了适合我的案例的解决方案,也许它也可以帮助其他人。

  1. 在 Android Studio 中打开终端窗口
  2. 使用以下命令杀死 ADB 服务器: adb kill-server
  3. 使用以下命令重新启动 ADB 服务器: adb start-server

它解决了我的问题。