【问题标题】:Detecting device for debugging (ADB) does not work用于调试的检测设备 (ADB) 不起作用
【发布时间】:2011-09-22 23:30:31
【问题描述】:

我已在我的 Archos 43 Internet 平板电脑 (Android 2.3.26) 上打开 USB 调试,但 adb 未检测到该设备。

我有 Kubuntu 11.04。

shell命令“lsusb”的输出:

michael@schlepptop777:~/.android_sdk/platform-tools$ lsusb
Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
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 002: ID 0e79:1411 Archos, Inc. 
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

所以我的“供应商 ID”是 0e79,不是吗?

对于下一步,我创建了以下文件:

sudo kate /etc/udev/rules.d/51-android.rules

内容如下:

SUBSYSTEM=="usb", SYSFS{idVendor}=="0e79", MODE="0666"

之后我设置了权限:

sudo chmod a+rx /etc/udev/rules.d/51-android.rules

然后我已经保存并重新启动了udev:

sudo /etc/init.d/udev restart

在完成所有这些步骤之后,adb 仍然没有显示我的设备:

michael@schlepptop777:~/.android_sdk/platform-tools$ ./adb devices
List of devices attached 
<empty line, because stackoverflow does not display this>

【问题讨论】:

  • 您是否也尝试过重新启动 ADB,然后可能断开/重新连接设备,重新启动 PC?

标签: android adb


【解决方案1】:

我在 ubuntu 11.04 上,让 adb 连接到我的 Atrix 的唯一方法是将 USB 连接模式更改为“Windows Media Sync”。首先这很奇怪,但特别奇怪的是,当 Windows 上的 ADB 设置为赢得媒体同步时,它不会连接。 或者你可以使用无线 adb。有几个小部件可以很容易地启用 wifi adb。他们在小部件和所有内容上显示 IP 地址。 :)

【讨论】:

    【解决方案2】:

    在某些情况下,您还必须在此文件中添加供应商 ID:~/.android/adb_usb.ini

    # ANDROID 3RD PARTY USB VENDOR ID LIST -- DO NOT EDIT.
    # USE 'android update adb' TO GENERATE.
    # 1 USB VENDOR ID PER LINE. 
    0x0e79
    

    请注意,当您升级 SDK 时,此文件可能会被覆盖,因此您可能需要在之后重新编辑它。

    【讨论】:

    • 谢谢,我刚刚用过下面的教程:archos.com/support/support_tech/… (Section: ADB for Android Developers (ARCHOS Internet Tablet)) 相当于你的建议:)
    • 而且我总是忘记在 id 之前添加“0x”。太令人沮丧了!!!非常感谢!
    • 这对我不起作用。 StackExchange 上其他答案和其他类似问题的方法也没有。
    【解决方案3】:

    执行sudo /etc/init.d/udev restart 命令后,您必须重新启动系统! 我知道,这听起来像是 Windows 的行为,但我在发现这个东西之前打破了 3 个小时的脑袋。

    【讨论】:

    • 不正确。您可能需要终止正在运行的 adb 服务器。
    • 真的!!经过近半小时测试所有其他命令后,重新启动就像一个魅力,谢谢;)也许还有其他方法,但它对我有用
    【解决方案4】:

    我从 sd 读卡器借了一根电缆,它不适用于 adb,而它适用于 sd 读卡器。 我尝试了一根新电缆,结果发现 adb devices 可以识别该设备!

    【讨论】:

      【解决方案5】:

      魔法师 2

      起初,我得到了类似的东西:

      $ adb devices
      * daemon not running. starting it now on port 5037 *
      * daemon started successfully *
      List of devices attached 
      

      然后我发现我需要做设置 |应用 |开发并选中 USB 调试复选框。

      $ adb devices
      List of devices attached 
      ???????????????? no permissions
      

      以root身份尝试,我得到了:

      $ su -l
      # adb devices
      List of devices attached 
      ???????????????? no permissions
      

      然后我意识到 adb 仍然以普通用户身份运行。当我以 root 身份执行以下操作时:

      # adb kill-server
      # adb devices
      * daemon not running. starting it now on port 5037 *
      * daemon started successfully *
      List of devices attached 
      A43-A44C0002-9BF80000-0C60C4CC-0D020027 offline
      

      ADB for Android Developers (ARCHOS Internet Tablet) 很有帮助,但我最终以 root 身份执行此操作:

      # cat /etc/udev/rules.d/51-android.rules 
      SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device",
      SUBSYSTEM=="usb", ENV{PRODUCT}=="e79/*", MODE="0666"
      SUBSYSTEM=="usb", SYSFS{idVendor}=="e79", MODE="0666"
      # udevadm control --reload-rules
      # udevadm monitor
      .
      .
      .
      ^C
      

      monitor 命令很有帮助,因为它显示了设备连接、断开连接、路径等。

      然后我能够停止以 root 身份运行的服务器,并以普通用户身份启动它:

      # adb kill-server
      # exit
      $ adb devices
      * daemon not running. starting it now on port 5037 *
      * daemon started successfully *
      List of devices attached 
      A43-A44C0002-9BF80000-0C60C4CC-0D020027 offline
      

      “离线”时设备将无法工作。为了解决这个问题,我不得不重启 Archos 43。

      $ adb devices
      List of devices attached 
      A43-A44C0002-9BF80000-0C60C4CC-0D020027 device
      

      虽然我怀疑这些操作是必需的,但为了安全起见,在重新启动后,我确保在打开 USB 调试之前插入 USB 并选择仅充电。我还禁用了 WiFi 和同步,但是一旦它开始工作,adb 仍然会连接那些正在打开的。

      此时,下载我的应用程序成功了:

      $ adb install bin/HelloWorld.apk 
      2914 KB/s (157589 bytes in 0.052s)
              pkg: /data/local/tmp/HelloWorld.apk
      Success
      

      附:第二天,我知道前一天晚上一切正常,我启动了我的开发系统并尝试再次连接。这给出了“离线”状态。我禁用了同步和 WiFi,没有重新启动 Archos 43,然后adb devices 显示“设备”状态而不是“离线”。我不知道该怎么做,但关掉这些东西毕竟可能很重要。

      【讨论】:

        【解决方案6】:

        实际上,就像 Aultbot 一样,更换电缆也对我有用。奇怪的是,我已经使用了几个小时的电缆,但它突然无法与 ADB 配合使用。

        另外,请确保您接受手机上的连接(Android 4 中的新安全功能)

        编辑:最近,关于 adb 服务出现了一些问题。如果它没有启动(在运行 adb 命令以获取调试消息之前检查 netstat 或类似内容或键入“set ADB_TRACE=1”)然后检查处理该错误消息的线程。一个常见问题是其他应用程序正在使用默认端口(通过在 adb 命令之前键入“set ANDROID_ADB_SERVER_PORT=12345”来更改端口)。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-07-27
          • 2013-10-03
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-02-12
          相关资源
          最近更新 更多