當我的Android應用程序已經運行並且我更改了代碼時,我收到了「熱代碼更換失敗」對話框。Android:我應該如何迴應Eclipse中的「熱代碼失敗」對話框?
我想知道正確的反應是什麼(終止或斷開連接),如果我想的Eclipse更新設備上我的代碼時,我遇到它。
terminate和disconnect有什麼區別?
此外,我想知道如果我點擊「不支持熱代碼替換時不顯示錯誤」,Eclipse將在未來發生這種情況時做什麼?
當我的Android應用程序已經運行並且我更改了代碼時,我收到了「熱代碼更換失敗」對話框。Android:我應該如何迴應Eclipse中的「熱代碼失敗」對話框?
我想知道正確的反應是什麼(終止或斷開連接),如果我想的Eclipse更新設備上我的代碼時,我遇到它。
terminate和disconnect有什麼區別?
此外,我想知道如果我點擊「不支持熱代碼替換時不顯示錯誤」,Eclipse將在未來發生這種情況時做什麼?
根據所使用的虛擬機(在這種情況下,Dalvik),可以在調試時進行一些代碼更改,這將會「熱部署」或「熱更換」。這意味着代碼更改將立即在模擬器上生效,您可以測試它們而無需重新部署應用程序。在處理可能需要10分鐘構建和部署的企業應用程序時,這種熱重新部署更常用,因此在開發過程中浪費了大量時間。
HotSpot虛擬機(通常在個人電腦上使用的虛擬機)只允許簡單的代碼替換,如果您嘗試添加/重命名字段成員或方法,則失敗。我不確定Dalvik VM提供什麼樣的支持,但如果您進行了更改,則不支持您獲得該對話框。現在
,作爲按鈕:
如果選中該複選框,它將始終爲Continue。
終止將**不**殺死*模擬器*,只有* app *被調試。 –
@ Philipp謝謝,我已經完成了Android開發已經有一段時間了。我糾正了它。 –
我通常終止,然後用更改後的代碼重新發布我的應用程序。
謝謝傑克 - 我也在問,我想知道如果單擊「不支持熱代碼替換時不顯示錯誤」,Eclipse在未來發生這種情況時會做什麼? –
顯然,當「不支持熱代碼替換」時,它不會顯示錯誤;) –
它只是不會顯示錯誤,只有在您推送它們之前,您的更改纔會被推送。因此,如果您的程序在AVD中運行,並且您更改了代碼,則需要再次「運行」以推送新版本。 – Jack
我想知道什麼是正確的響應是(終止或斷開連接),如果我想讓Eclipse在設備上更新我的代碼,當我遇到它。
由於Dalvik虛擬機不支持熱插拔,即運行代碼的更新,當您遇到此對話框時,沒有直接的方式讓Eclipse在模擬器上更新您的運行代碼。您必須手動將應用程序重新部署到模擬器。
terminate和disconnect有什麼區別?
終止將終止該應用正在調試模擬器/設備上。
斷開連接只會斷開調試器,並讓應用程序在仿真器/設備上運行。
另外,我想知道如果我點擊「當熱代碼替換不支持不顯示錯誤」,你會在Eclipse的未來做的時候這種情況發生?
它顯然不會顯示錯誤,當不支持熱代碼替換時) - 即它不會警告你,你做的任何更改都不會被熱插拔到正在運行的應用程序中(因爲例如,Dalvik虛擬機不支持像Oracle的JVM那樣的熱交換)。
你在調試的時候?我也遇到過這個消息,但是隻有當我一直在調試某些東西並且錯誤地修改了代碼而沒有停止調試器的時候。這對我來說不是一個問題,因爲我剛剛重新建立並投入仿真器。我假設熱碼替換不可用。你真的需要那個設施嗎? – Kerry