当我的 Android 应用程序已经在运行并且我更改了代码时,我得到了“热代码替换失败”对话框。
如果我希望 Eclipse 在我遇到设备时更新我的代码,我想知道正确的响应是什么(终止或断开连接)。
终止和断开有什么区别?
另外,我想知道如果我点击“不支持热代码替换时不显示错误”,以后遇到这种情况Eclipse会怎么做?
最佳答案
根据所使用的 VM(在本例中为 Dalvik),可以在调试时进行一些代码更改,这将“热部署”或“热替换”。这意味着代码更改将立即在模拟器上生效,您可以测试它们而无需重新部署您的应用程序。这种热重新部署在处理可能需要 10 分钟构建和部署的企业应用程序时更为常用,因此在开发过程中浪费了大量时间。
HotSpot VM(通常在 PC 上使用的 VM)仅允许简单的代码替换,如果您尝试添加/重命名字段成员或方法,则会失败。我不确定 Dalvik VM 提供什么样的支持,但如果您进行更改它不支持,您将看到该对话框。
现在,至于按钮:
- 继续:接受您所做的更改不会在模拟器中立即生效并继续调试
- 终止:杀死应用
- 断开连接:不终止应用程序但结束调试 session (即断开调试器)
如果您选中该框,它将始终继续。
关于Android:我应该如何响应 Eclipse 中的 "Hot Code Replace Failed"对话框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7450257/