2013-05-30 54 views
12

使用Intellj-idea我試圖調試到Android源代碼API 17,但是當我在平臺源代碼中設置斷點時,它們在運行時被忽略。在調試時看到斷點時,會出現一條消息,指出「在android.view類的行15,508處沒有找到可執行代碼」Android平臺源代碼中的斷點

我試過用模擬器運行API 17以及手機與Android 4.2.2,但都不工作。我可以對方法進行排序,但光標會跳轉。

所以我猜測沒有調試信息以及一些優化已經進行。所以我的問題:

有沒有一種方法可以從我的應用程序的角度正確調試Android平臺,並設置在其中工作的斷點?也許一個已經用調試信息構建的模擬器?

任何幫助將不勝感激?

問候 李

+1

你解決了嗎?我認爲這個問題值得更多關注! – l33t

+0

奇怪的是我認爲這在Eclipse中是可行的,而且我絕對沒有Android的調試版本 –

回答

3

這取決於你想什麼應用程序調試:自己的應用程序,系統應用程序,如android.process.acore

調試在自己的應用程序

的主要問題運行平臺源是您下載您的計算機上必須匹配什麼設備上運行的平臺源的行號。您最好的選擇是在Google Nexus設備上進行調試,例如Nexus 5或Nexus 7,因爲它應該運行與您通過Android SDK下載的Google發佈的源代碼完全一樣的編譯版本。只需將源路徑添加到IntelliJ中的sdk,附加調試器並設置斷點。確保您選擇的設備上運行的API級別相同。這應該做到這一點。

調試在系統應用運行平臺源

您需要eng構建Android平臺調試系統進程。如果您尚未構建並安裝Android平臺,則需要解鎖啓動加載程序。也許有構建的氰基修改或可以下載的eng構建,但我找不到任何經過一些簡單的谷歌搜索。您也可以自己製作AOSP的eng,並在您的機器上運行仿真器。如果您感覺非常有抱負,請參閱Running emulator after building Android from source"Choose a target" section on the AOSP site瞭解如何構建您自己的eng版本。