【问题标题】:Android: Problems debugging with the emulator from eclipseAndroid:从 Eclipse 中使用模拟器进行调试时出现问题
【发布时间】:2011-06-11 12:32:12
【问题描述】:

这快把我逼疯了。像这些人slow-android-emulator 一样,我发现从 Eclipse 运行模拟器很慢而且有问题。如建议的那样,我尝试单独运行模拟器。但后来我没有得到我的最新变化。我不太了解 Eclipse,但我想要类似“构建”的东西,然后以某种方式将最新图像加载到模拟器中。

另外,我尝试让模拟器保持打开状态并不断使用 run->debug,但在 2 或 3 次之后,我收到如下错误:

Failed to install HelloAndroid.apk on device 'emulator-5554': timeout
Launch canceled!


emulator: ERROR: the user data image is used by another emulator. aborting


Waiting for HOME ('android.process.acore') to be launched...
emulator-5554 disconnected! Cancelling 'com.example.helloandroid.HelloAndroid activity launch'!

java.lang.NullPointerException
at com.android.ddmlib.Client.sendAndConsume(Client.java:571)
at com.android.ddmlib.HandleHello.sendHELO(HandleHello.java:142)
at com.android.ddmlib.HandleHello.sendHelloCommands(HandleHello.java:65)
at com.android.ddmlib.Client.getJdwpPacket(Client.java:670)
at com.android.ddmlib.MonitorThread.processClientActivity(MonitorThread.java:317)
at com.android.ddmlib.MonitorThread.run(MonitorThread.java:263)

我已经尝试杀死并重新启动 adb 服务器,但无济于事。

再一次,简单地说,我想要一个“系统”,我可以在其中有效地进行更改,将它们加载到模拟器中并进行测试。

【问题讨论】:

    标签: android eclipse debugging emulation cycle


    【解决方案1】:

    请尝试取消当前的 avd(emulator),然后重新启动该 avd(emulator)。

    【讨论】:

      【解决方案2】:

      模拟器通常很慢,但一旦启动,我通常不需要重新启动。

      如果你觉得从eclipse外部运行模拟器速度更快,那么你可以在eclipse外部运行模拟器,在android应用运行-->配置中,可以选择“preferred avd”并取消勾选自动目标模式。 (它还告诉我您的 Eclipse 可能没有足够的内存。如果您分配的内存很少,则需要更改 vmargs。稍后会详细介绍)。

      此外,当您在进行一些代码更改后想要再次调试时,您是否关闭调试会话(调试窗口中的红色按钮)并开始新的调试会话。模拟器不能很好地处理热交换。

      (注意:请尝试使用 Jconsole 或其他一些分析器并粘贴内存使用情况,或者至少在任务管理器中检查内存使用情况。)

      【讨论】:

      • 只是想添加这个。如果你讨厌你的模拟器,你仍然可以使用你的手机。那样真的很快。 (我只是在遇到加速度计之类的模拟器限制时)
      • 同意 - 除了我在测试 sql 问题和故意破坏我的数据库等时。我在真实目标上进行测试。我认为模拟器给您的唯一优势是您可以使用原始数据库文件来测试您的错误处理稳健性,并且您可以模拟不同的屏幕密度和分辨率。除非您正在做这两件事中的一件,否则硬件会更快,并且可以完成您需要的一切。
      • 到目前为止的建议很好。有一点,即使我从调试器启动了应用程序,当应用程序运行时,我的调试命令通常也会变灰。断线,我猜。有没有办法重新连接?
      • @Jahmic。应该不是断线吧。请查看您的 android logcat。如果断开连接,将显示一条红色消息 (log.severe),指示连接丢失或被 {avd name} 拒绝。 (android logcat选项卡在我IDEA的左下角,不幸的是我不知道eclipse在哪里,但应该在类似的位置)
      • 来自 logcat:WARN/ActivityManager(62):启动超时已过期,放弃唤醒锁!也:01-19 17:03:11.118:错误/jdwp(239):向调试器发送请求失败:管道损坏(-1 of 27)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-02-01
      • 2021-12-26
      • 1970-01-01
      • 1970-01-01
      • 2010-12-17
      • 1970-01-01
      • 2021-11-04
      相关资源
      最近更新 更多