Eclipse和Android:无法在三星Galaxy S2上进行调试,因为未检测到设备。

5

我刚开始学习Android开发。我使用Ubuntu 11.10和Eclipse。我已经安装了从Android开发中获取的所需插件,并且我还编写了一些示例,在模拟器上编译和运行都很顺利。

但是有些东西,如多点触控,无法在模拟器上测试,因此我想在我的真实三星Galaxy S2设备上进行测试。问题在于,我尝试了网络上所有找到的方法,但仍然无法使用它。

当我运行./adb devices时,它显示没有设备,尽管设备已连接。

$ lsusb
...
Bus 001 Device 012: ID 04e8:6860 Samsung Electronics Co., Ltd 
$ ./adb devices
List of devices attached 

我已经按照网上的指南多次以不同的方式修改了/etc/udev/rules.d/51-android.rules文件,但是没有任何效果。目前我在该文件中添加了以下这行内容:

SUBSYSTEM=="usb", ATTRS{idVendor}=="04e8", ATTRS{idProduct}="6860", MODE="0666", GROUP="plugdev"

当然,我尝试重启udev和adb服务,甚至重启整个系统,但都没有起作用。
有什么提示吗?
非常感谢您的帮助。
5个回答

7
打开手机设置,进入应用选项,点击开发者选项,启用USB调试。

3
尝试使用三星Kies,它提供了适合的ADB驱动程序: http://www.samsung.com/uk/support/usefulsoftware/KIES/JSP 使用正确的ADB驱动程序(从Kies或其他地方获取)应该可以完美地工作。
编辑: 在Linux上:http://developer.android.com/tools/device.html 如果您正在Ubuntu Linux上开发,则需要添加一个udev规则文件,其中包含每种类型的设备的USB配置,以便进行开发。在规则文件中,每个设备制造商都通过唯一的供应商ID标识,如ATTR {idVendor}属性所指定。有关供应商ID列表,请参见下面的USB供应商ID。要在Ubuntu Linux上设置设备检测:以root身份登录并创建此文件:/etc/udev/rules.d/51-android.rules。使用此格式将每个供应商添加到文件中:SUBSYSTEM ==“usb”,ATTR {idVendor} ==“0bb4”,MODE =“0666”,GROUP =“plugdev”
在此示例中,供应商ID用于HTC。 MODE分配指定读/写权限,GROUP定义哪个Unix组拥有设备节点。注意:规则语法可能因您的环境而略有不同。根据需要请查阅您系统的udev文档以获取规则语法概述,请参见编写udev规则的指南。现在执行:chmod a + r /etc/udev/rules.d/51-android.rules

如问题所述,我正在使用Ubuntu,而Kies似乎只适用于Mac和Windows。 - Fran Marzoa

0

我在Mac OS X上使用Eclipse时遇到了同样的问题。仅仅将手机设置为“调试”模式(设置 -> 应用程序 -> 开发 -> USB调试)并不能解决这个问题。我必须在命令行中执行以下操作才能解决这个问题。

sudo adb kill-server
sudo adb start-server

0

尝试使用另一根USB电缆

如果可能的话,请检查它是否可以与另一台设备配合使用

定位您的问题,确保是软件出了问题(如果是的话)


由于底层操作系统检测到了该设备,我认为电缆并没有问题。 - Fran Marzoa
这是一个Galaxy S2特定的问题。 - Andrew Mackenzie

0

在终端中执行以下命令

$ echo "0x04e8" >> ~/.android/adb_usb.ini

并使用以下命令重新启动adb

$ adb kill-server
$ adb start-server

使用adb devices检查设备是否已列出


1
你是否已经在设备的设置->应用程序->开发中启用了USB调试? - Rajesh
嗨,Rajesh,你是完全正确的。我刚刚发现了那个问题,当我看到你的建议时,我正要回答我的问题。 - Fran Marzoa
你可以考虑将你的评论发布为答案,这样我就可以投票选择它。 - Fran Marzoa

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接