在Mac上进行Android开发时,我的这部新手机并没有出现在adb的设备列表中。很多其他的手机和设备对我来说都很好,所以我知道我的设置是好的。

我在手机上启用了调试(设置—>应用程序—>开发—> USB调试),但当我运行adb设备时,它不显示


当前回答

现代Android的另一个棘手之处在于,你可以通过选择设备的“用途”来设置设备行为。

例如,如果它被设置为“用于”充电,设备将不会被ADB检测到。切换到PTP/MTP其他更“活跃”的行为会自动让你的设备被发现。

其他回答

尝试了以上所有方法,最后一个不足之处是在我的4.4 Galaxy Note 10.1中隐藏的开发人员选项中启用USB调试。

参见本链接中的第5.2项。

我切换到不同的USB端口,这使它显示在adb设备列表中。

在这里提出的所有解决方案中,这是唯一对我有效的方法。它是由@user908643在这条评论中提出的。

针对OS X的Nexus 4和Nexus 5的解决方案

当我运行:adb devices时,在“附加设备列表”中没有列出任何设备

Fix:

从developer.android.com获取SDK(最新版本) 在nexus 4上设置开发模式(关于手机> Build Number >点击7次进入开发模式) 一个新的菜单选项将出现在“设置”:{}开发人员选项 确保你在{}开发者选项下检查了以下内容: USB调试:USB连接时的调试模式(接受RSA指纹弹出) 通过USB验证应用程序:检查通过ADB/ADT安装的应用程序是否存在有害行为

尝试从./adb设备中列出您的设备,它应该可以工作。

答案摘自:你知道为什么adb在mac上不识别我的nexus 4吗

重要更新:正如@equiman指出的,有一些USB电缆只用于充电,不传输数据。有时交换电缆也会有帮助。

更新一些版本的adb, ~/.android/adb_usb.ini必须被删除。

执行摘要:将Vendor ID添加到~/.android/adb_usb.ini并重新启动adb

详情: 大多数情况下,不需要做任何事情就可以让Mac识别手机/设备。说真的,99%的情况下“它就是管用”。

也就是说,重置adb的最快方法是按顺序使用以下命令重新启动它:

  adb kill-server
  adb devices

但是adb devices命令时常找不到您的设备。也许如果你正在使用一些实验性的或原型的或不寻常的设备,也许它只是未知的,不会出现。

您可以通过告诉adb您的设备的“Vendor ID”来帮助adb找到您的设备,这实际上是为它提供了一个提示。这可以通过将十六进制供应商ID放在文件~/.android/adb_usb.ini中来实现

但是首先您必须找到Vendor ID值。幸运的是,在Mac上这很简单。启动系统信息应用程序。它位于/Applications/Utilities/文件夹中,或者你可以通过屏幕左上角的苹果菜单找到它,选择“关于这台Mac”,然后点击“更多信息…”按钮。截图如下:

Expand the "Hardware" tree, select "USB", then look for your target device. In the above example, my device is named "SomeDevice" (I did that in photoshop to hide the real device manufacturer). Another example would be a Samsung tablet which shows up as "SAMSUNG_Android" (btw, I didn't have to do anything special to make the Samsung tablet work.) Anyway, click your device and the full details will display in the pane below. This is where it lists the Vendor ID. In my example from the screenshot the value is 0x9d17 -- use this value in the next command

echo 0x9d17 >> ~/.android/adb_usb.ini

在此之前,如果你还没有adb_usb.ini文件,这也没关系,大多数情况下,它只是不需要找到你的设备,所以该文件不存在是很正常的。上面的命令将创建它,如果它已经存在,则将它附加到它的底部。现在运行上面列出的命令重新启动adb,您应该可以开始了。

adb kill-server ; adb devices

* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attached 
123ABC456DEF001 device

现代Android的另一个棘手之处在于,你可以通过选择设备的“用途”来设置设备行为。

例如,如果它被设置为“用于”充电,设备将不会被ADB检测到。切换到PTP/MTP其他更“活跃”的行为会自动让你的设备被发现。