为什么Eclipse和ADB无法识别我的Android设备?

时间:2011-09-29 09:08:26

标签: android adb

我的设备是带有Android 2.1的Alcatel OneTouch 890。我在51-android.rules rules.d文件夹的/etc/udev {。}}中进行了配置。

我的操作系统是Ubuntu。

我在设备中启用了USB调试模式。

HTC和三星设备正在检测,但不是我的阿尔卡特,

这是我的51-android.rules文件。

#HTC
SUBSYSTEM=="usb", SYSFS{idVendor}=="0bb4", MODE="0666"
SUBSYSTEM=="usb_device", SYSFS{idVendor}=="0bb4", MODE="0666"
#samsung 
SUBSYSTEM=="usb", SYSFS{idVendor}=="04e8", MODE="0666"
SUBSYSTEM=="usb_device", SYSFS{idVendor}==”04e8”,ATTRS{idProduct}=="689e", MODE="0666",OWNER="abcd"
#alcatel
SUBSYSTEM=="usb", SYSFS{idVendor}=="1bbb", MODE="0666"
SUBSYSTEM=="usb_device", SYSFS{idVendor}=="1bbb", MODE="0666"


root@abcd:/home/abcd# lsusb
Bus 005 Device 002: ID 0461:4d15 Primax Electronics, Ltd Dell Optical Mouse
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 006: ID 1bbb:00f2 T & A Mobile Phones  // what is T & A in this line....?
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
root@abcd:/home/abcd# Android/android-sdk-linux_86/platform-tools/adb devices
List of devices attached 

9 个答案:

答案 0 :(得分:13)

首先,检查您在udev规则中使用的引号类型。看起来您可能正在使用非ASCII双引号。查看usbusb_device等引号之间的差异

SUBSYSTEM=="usb", SYSFS{idVendor}=="1bbb", MODE="0666"
SUBSYSTEM==”usb_device”, SYSFS{idVendor}==”1bbb”, MODE="0666"

您也可以按照@JeremyD的建议,将sudo与ADB一起使用。这样做会使这个文件无关紧要。

其次,

  1. 修改~/.android/adb_usb.ini(如果您以root用户身份运行,请检查/root/.android
  2. 如果文件已存在,请将0x1bbb添加到结尾;否则:echo 0x1bbb >> adb_usb.ini
  3. adb kill-server
  4. adb start-server
  5. 检查设备adb devices的输出
  6. 希望这有帮助。

答案 1 :(得分:7)

阿尔卡特OneTouch 891 - Android 2.1

阅读这些有用的提示和其他一些关于设置Android设备的帖子,我一步一步地写下了如何准备好设备的文章。

编辑〜/ .android / adb_usb.ini并附加0x1bbb行 在底部。

这将列出:

  

$ adb devices
  附加设备清单
  ????????????没有权限

使其发挥作用的步骤:
将您的自我添加到组中 为你的发行版安装51-android.rules包,然后打开文件:
/etc/udev/rules.d/51-android.rules

  

**如果不存在,请列出包文件并找到该文件。

在名为OneTouch的评论部分或任何您想要命名的部分下面添加以下部分:

SUBSYSTEM==”usb_device”, SYSFS{idVendor}==”1bbb”, MODE="0666"

所以,结果将是:

# Alcatel OneTouch 891
SUBSYSTEM==”usb_device”, SYSFS{idVendor}==”1bbb”, MODE="0666"

保存文件!
多次重新插入设备的USB,然后重新启动adb守护程序:
特别发布:

  • 的Archlinux

    $ rc.d restart adb

  • ubuntu,redhat,fedora,centos

    $ service adb restart

或手动:

$ adb kill-server
$ adb start-server

$ adb devices

将列出您的设备。

最后:

我的结果显示在bash中:

  

$ adb devices
  附加设备清单
  0123456789ABCDEF设备

  • 如果仍然没有结果: 运行此命令:

    $ udevadm触发器

然后再次重新插入您的设备。 或者只是重启。

证明:


Dalvik的:
http://wstaw.org/m/2011/11/13/plasma-desktopos8794.jpg
文件管理器:
http://wstaw.org/m/2011/11/13/plasma-desktopgt8794.jpg

答案 2 :(得分:4)

关闭eclipse后尝试杀死并启动adb服务器。

所以试试:

  1. close eclipse
  2. 转到platform-tools目录
  3. do:sudo ./adb kill-server
  4. 禁用手机上的开发调试
  5. 再次启用
  6. do:sudo ./adb start-server
  7. 执行:./ adb devices
  8. 它应该工作。我曾经多次遇到这个问题,并且这样做是在我给你的指示后工作的。

    希望它有所帮助!

    编辑:由于大多数Android开发人员转移到Android工作室和其他模拟器,这可能无法正常工作。

答案 3 :(得分:3)

检查出来

http://developer.android.com/guide/developing/device.html#setting-up

阿尔卡特不包括在内是很奇怪的

答案 4 :(得分:1)

对于那些有兴趣在CentOS上找到adb识别设备的perrenial解决方案的人,我找到了解决方案。

首先,以root身份运行adb不是一个好的解决方案,因为任何用户都可以随时重启adb;甚至IDE自动重启adb,然后adb再次失明。

我的解决方案是创建一个“adb”组,并将我的用户添加到该组。 然后在51-android-rules中,像这样添加GROUP:

SUBSYSTEM=="usb", SYSFS{idVendor}=="0bb4", MODE="0666", GROUP="adb"

重新加载udev规则。 如果您正在使用gnome会话,请重新启动会话,因为gnome会在您的组中保留缓存...

打开一个新的xterm,验证您是否属于 adb 组:$ groups

然后$ adb devices应启动adb服务器,然后识别您的设备。

答案 5 :(得分:1)

我也有阿尔卡特手机,我通过以下方式解决了这个问题:

<强> 1。#lsusb

Bus 002 Device 021:ID 18d1:0002 Google Inc. //这是我的阿尔卡特手机

2.将以下内容添加到/etc/udev/rules.d/51-android.rules:

SUBSYSTEM ==“usb”,ATTRS {idVendor} ==“18d1”,ATTRS {idProduct} ==“0002”,MODE =“0666”

注意:我注意到预期的“idVendor”,你还需要添加“idProduct”。

3.#sudo service udev restart

4.拔下手机并重新插上。

5.#adb devices

附加设备列表

TCL-Martini设备

答案 6 :(得分:1)

我知道OP接受的答案是有效的,但对于将来会出现此问题且上述答案不起作用的人,以下内容对我有用。

这种通用的udev规则 -

ACTION=="add", SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ENV{ID_USB_INTERFACES}=="*:ff420?:*", MODE="0666"

来自这个问题 - ADB not detecting device samsung i777 in ubuntu 12.04

帮助我在&#34; BLU Dash Jr&#34;上解决了这个问题。在我的相关问题中提到的电话(供应商=展讯):

Spreadtrum (Vendor ID 1782) Issues Connecting to adb

答案 7 :(得分:0)

我使用ArchLinux我安装了这个包: https://aur.archlinux.org/packages.php?ID=51476 它安装了我需要的所有规则 关于arch和android的更多细节: https://wiki.archlinux.org/index.php/Android

答案 8 :(得分:0)

在您的设备中,确保使用USB接口作为MTP或PTP。有时,默认情况下,它从大容量存储接口开始,似乎adb未被授予访问设备的权限。