【问题标题】:Cannot debug on an Android device无法在 Android 设备上调试
【发布时间】:2011-12-27 06:28:39
【问题描述】:

我已将 Nexus One 设备连接到 PC。设备上的 USB 调试已打开。当我从 Eclipse 运行应用程序时,它在设备上运行良好。但是,如果我尝试调试,我会在 Nexus One 上收到一个消息框,说明它正在等待调试器附加。在 Eclipse 方面,经过大约 20 秒左右的思考后,我在控制台中得到以下信息

Attempting to connect debugger to 'com.angryhacker.printerfun' on port 8600
Launch error: Failed to connect to remote VM. Connection timed out.

我错过了什么?

【问题讨论】:

  • 你尝试重启 eclipse 了吗?当我遇到连接超时错误时,我通常会重新启动 eclipse。
  • @Vinoth 是的,我已经多次重启 Eclipse。没有骰子。

标签: java android eclipse debugging


【解决方案1】:

1) 在设备上启用 USB 调试是第一步。听起来您已经这样做了……但是仔细检查所有内容并没有什么坏处:

http://developer.android.com/guide/developing/device.html

2) 正如同一个链接所说,确保在项目的 AndroidManifest.xml 中启用了调试

3) 一定要检查您的主机 PC 的防火墙(例如,Windows 防火墙),以确保它没有阻止任何端口。

4) 出于故障排除的目的,您还可以尝试:

a) setting a longer timeout

b) trying a different port#

附录:

问:我假设您从未成功从 Eclipse 编译器下载并运行 .apk 到您的 NexusOne 手机。对吗?

问:我还假设当您尝试“调试为”时,您会在 GUI 中看到您的实体手机,并且您已经选择了它。对吗?

【讨论】:

  • 第一季度。我可以在设备上运行 .apk 就好了。调试是行不通的。
  • 第二季度。嗯,我没想到那里检查。空空如也。调试配置菜单项也不起作用 - 只是在错误日志窗口中显示unhandled event loop exception。错误来自 org.eclipse.ui。 - 也许是时候重新安装了。
【解决方案2】:

在您的电脑未连接网络(无 WiFi、无网线)时测试它是否能正常工作。如果它在这些条件下确实有效,那么您可能需要确保地址正确解析为 localhost。 DDMS 和 adb.exe 用于调试和与 VM 通信的消息必须在您的 PC 上正确解析为 localhost。 (是的,奇怪的是,其他使用 DDMS 和 adb 的命令可以正常工作,但调试却不行。似乎 DDMS 或 adb 中的某些内容需要标准化,以便它们都在相同的条件下工作。)

如果您需要确保事情正确解析为localhost

1) 确保此行在您的 /Windows/System32/drivers/etc/hosts 文件中:

127.0.0.1 本地主机

(“127.0.0.1”和“localhost”之间可以有任意数量的空格)

2) 如果这不起作用,那么您可能还需要将 PC 的 IPv4 地址添加到 hosts 文件中,并将其解析为 localhost。 (您可以使用ipconfig 命令找出您机器的 IPv4 地址。)例如,如果您的机器的 IPv4 地址是 192.168.1.100,那么您将添加该行

192.168.1.100 本地主机

到您的主机文件。 (您可以在文件中的“127.0.0.1 localhost”行下方添加它。)

您可以使用netstat -b 命令验证 adb(以及您的模拟器,如果您正在运行的话)正在侦听端口。 (请注意,-b 选项需要管理员权限。我使用“以管理员身份运行”打开命令窗口。)

【讨论】:

  • 其实我的ip 192.168.110.178 localhost有错。删除线路后一切正常。
【解决方案3】:

我在 Windows 8 上遇到了同样的错误。我尝试了@paulsm4 的答案所建议的所有要点,但仍然没有任何效果。

当我将 eclipse.exe 的兼容模式设置为 Windows XP SP3 时,问题得到了解决。

提示:右键单击eclipse.exe => Properties => Compatibility => Compatibility Mode => 将兼容模式设置为“Windows XP (Service Pack 3)”

【讨论】:

    【解决方案4】:

    此类问题的另一个可能原因是您的活动中的意图过滤器。

    当为您的活动定义了一些意图时,您可能无法调试应用程序。例如:

    <action android:name="android.intent.action.DEVICE_INITIALIZATION_WIZARD" />
    <action android:name="com.android.setupwizard.COMPLETED" />
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-23
      • 2021-11-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多