2012-07-11 54 views
23

當我在Eclipse中調試我的代碼時,當我打開編輯器以找出我無法編輯它,因爲我實際上正在查看源代碼時, .class文件。在調試模式下,如何讓Eclipse打開.java文件而不是.class文件?在Android R18更新後從調試視圖編輯.class中打開源代碼

編輯:當我在遇到斷點我代碼,它帶給我MyFile.class,而不是MyFile.java,所以我可以看到我的代碼但不能編輯它。

編輯:我猜它somethign做Android和ADT R18

+0

什麼課?這是一個你沒有附加源的圖書館類嗎? – 2012-07-11 21:08:35

+0

不,這是我寫的代碼。 – styler1972 2012-07-11 21:08:53

+0

這很奇怪。我從來沒有見過這種行爲。 – 2012-07-11 21:09:37

回答

51

當我終於找到了一些時間和很好的理由來深入研究這個問題後,我將詳細闡述Thornbjorn的答案。

最近,谷歌改變了Android項目打包外部Android庫的方式。在ADT R17中(我認爲)它開始將外部項目源打包到.jar文件中,並將它們直接包含到Android Dependencies或/ libs文件夾中的項目中。

現在,當調試器遇到斷點時,它會在.jar中調出源代碼,實質上是告訴您編輯.class文件。問題是這個文件是隻讀的,所以你必須手動找到你的.java源文件。 (疼痛)

修復方法是在調試視圖中右鍵單擊項目名稱,然後從菜單中選擇「編輯源查找...」。從那裏,刪除默認查找路徑。之後,手動添加項目引用的關聯項目(不是罐子)。這可以通過單擊添加,選擇Java Project,然後檢查相應的項目來完成。

+7

我搜索了很長時間才發現這個「Edit source lookup ...」選項。我終於發現它在調試視圖中的上述位置! (列出了堆棧和線程的窗口:))謝謝! – 2013-01-30 21:59:40

+1

很好的答案! :) – Krystian 2013-06-19 10:34:49

+5

非常感謝!讓我寫下那些仍然不知道如何解決問題的詳細步驟。 1.開始在eclipse中調試你的項目。 2. Eclipse菜單:Window-> Show View-> Debug。 3.在調試視圖中,右鍵單擊您的項目名稱,然後選擇「編輯源查找...」4.不需要刪除「默認」,只需點擊「添加...」 - > Java項目 - >(庫)項目包含源文件。確保在「編輯源查找路徑」對話框中選定的項目高於「默認」。 – 2013-09-09 08:40:43

2

出於某種原因,Eclipse不相信類文件來自於您的Java文件。這通常是錯誤配置的構建路徑,或者是使用jar文件而不是生成jar文件的項目。

查看項目經理面板(<->按鈕),查看Eclipse找到類文件的位置,然後找出爲什麼它使用該位置而不是使用源文件的項目。

+0

我認爲你是正確的,因爲android如何將外部android庫封裝在罐子裏 – styler1972 2012-07-11 21:16:54

5

好的,所以我討厭成爲「那個人」,考慮到這個人工作的人數,但這對我來說根本不起作用。我的意思是「編輯源查找...」菜單項不在上下文菜單中。我沒有錯過在「調試透視圖」中執行此操作的說明(大概在「調試透視圖」的「項目瀏覽器」中)。我在應用程序運行的同時應用程序被暫停時嘗試了它。我嘗試檢查應用程序項目的菜單(大概是指示的內容)和圖書館項目。沒有骰子。這是最新的Eclipse版本。

不過,我能解決問題:

  1. 在任何應用程序或您要爲鏈接源庫設置一個斷點。實際上,只要您試圖鏈接源庫的函數具有一個函數,該函數將在遇到斷點時出現在調用堆棧中
  2. 開始調試您的應用程序。
  3. 導航你的應用程序來擊中斷點。
  4. 確保您處於Debug透視圖。
  5. 在Debug選項卡(出現調用堆棧)中,從庫中找到任意函數。
  6. 右鍵單擊該功能。 「編輯源查找...」菜單選項應該在那裏(靠近底部)。
  7. 從這裏開始,說明與Styler's相同。點擊「添加」,選擇「Java Project」並添加您的項目(或多個項目)。
  8. 在退出「Edit Source Lookup ...」窗口之前,如果您和我一樣,您會看到Eclipse已經選擇向列表中添加一些您沒有選擇的東西。一些這些東西(可能包含「Android的私人圖書館」名稱擴張項目下可能是您剛纔添加源庫的罐子,從列表中刪除那些罐子。
  9. 利潤!
6
  1. 打開main project properties -> Java Build Path -> Projects選項卡並添加有主體工程項目依賴。
  2. 切換到Order and Export選項卡,取消Android Dependencies
  3. 享受
+2

我試過了其他的建議,這是爲我工作的那個!謝謝! – dhaag23 2014-01-30 02:52:42

相關問題