2013-02-27 83 views
0

我有一個問題,很多人都看過很多問題,這在主題中有描述:有時,R.java消失,經過一段時間(太長的時間)改變了我所做的工作,R.java背部。當R.java沒有生成時,調用R的行顯示錯誤:'R無法解析爲變量'。R無法解析爲變量 - Eclipse技巧找到錯誤?

我知道R不是真正的問題,並且在我的代碼中有一個或多個錯誤。

我的問題是:如果Eclipse不顯示它們,如何定位這些錯誤?

如果你有同樣的問題,作爲我來說,第一次看到"R cannot be resolved to a variable"?它可以幫助您擺脫那mercyless錯誤

+2

嘗試清理您的項目......大部分時間都是因爲項目構建而發生的。 – 2013-02-27 14:53:37

+0

「R.java消失......回來」。我沒有絲毫的想法,你在這裏意味着什麼。你能照亮我嗎? – bofredo 2013-02-27 14:55:14

+0

我已經試圖清理我的項目,因爲暗示有http://stackoverflow.com/questions/7824730/r-cannot-be-resolved-to-a-variable 但是,R不是由於我的代碼,我無法本地化 – WhiskThimble 2013-02-27 15:31:26

回答

4

如果你想找出這個錯誤的根源,試試這個:

  1. 轉到Project -> Clean。這將確保你的錯誤不是由於糟糕的構建。如果仍然無法找到R,請轉到步驟2.
  2. 您應該在Eclipse中有一個​​選項卡,它將列出打開項目中的所有錯誤和警告,如下面的屏幕截圖所示。如果看不到「問題」選項卡,請轉至Window -> Show View -> Problems
  3. 展開Errors部分以查看存在哪些問題。在大多數情況下,您會被告知問題,項目,文件和行號。

enter image description here

+0

首先,感謝您的幫助。我是新的Eclipse用戶,我不知道Problems選項卡。 但我的問題是:此選項卡中顯示的錯誤是'R無法解析爲變量',這表明R沒有生成。我想找到阻止Eclipse生成R.java的錯誤 – WhiskThimble 2013-02-27 15:40:51

+1

如果沒有生成R.java,那麼您的XML文件或Android清單或項目構建路徑中存在問題。問題標籤*應該*列出這些,但是如果沒有,請檢查左側的文件導航器以查找文件夾或文件上的紅色十字。 – 2013-02-27 15:57:37

+0

正如你所說,''應該',但在我的情況不是。 – 2013-07-18 13:37:12

2

如何定位這些錯誤,提供Eclipse不顯示呢?

通常,Eclipse 確實顯示它們。這些錯誤將出現在資源或清單中,通常在軟件包管理器中的文件圖標上用紅色的X標記表示。通常,控制檯還會包含有關錯誤的日誌消息。

推動來推,你可以做一個命令行構建,看看有什麼報告。

+0

正如我對Raghav Sood所說的,錯誤日誌顯示錯誤「R無法解析爲變量」,這不是真正的錯誤我正在尋找 – WhiskThimble 2013-02-27 15:50:40

+0

@WhiskThimble:我不知道你認爲「錯誤日誌」是什麼。導致「R」問題的錯誤通常出現在Eclipse Package Manager(紅色X徽章)和Eclipse控制檯中,正如我在答案中所指出的那樣。 – CommonsWare 2013-02-27 16:45:04

+0

@DídacPérez:如果您花時間閱讀答案,可以考慮按照答案中的說明進行操作,包括查看控制檯並運行命令行構建。 – CommonsWare 2013-07-18 13:40:38

1

如果您的/res文件夾或其他XML文件有問題,Eclipse將不會生成R.java文件。

我建議您檢查該文件夾。

+0

有沒有辦法知道錯誤在哪裏res? Eclipse應該能夠本地化,不是嗎? – WhiskThimble 2013-02-27 15:55:13

+0

按照Raghav Sood的指示。我不能說更好! – VinceFR 2013-02-27 17:11:01

0

如果清潔不工作,沒有比缺少R.java重新啓動Eclipse的其他錯誤。

File Menu->restart

+0

這不是關於Eclipse的問題(或者我認爲它不是)。清潔似乎工作得很好,但R.java不會再生。 如果你想知道,我反正重新啓動它,但沒有任何變化;-) – WhiskThimble 2013-02-27 15:54:14

0

發現的問題,但無法弄清楚如何簡單地找到它。我在複製過去的另一個複製過程中一致地刪除了這一行< string name="action_settings">Settings< /string>

不知道它用於什麼,但Eclipse沒有在錯誤日誌中顯示,也沒有在我查找的任何地方顯示。

非常感謝大家的幫助,希望我不會再遇到類似的問題!

0

1)查看Package Explorer樹中的xml文件是否具有錯誤圖標(如果存在),修復錯誤並生成R-class。

示例提示:FILL_PARENT在API級別8中重命名爲MATCH_PARENT;所以如果你的目標是平臺2.1(api 7),把所有的發生改回「fill_parent」

2)如果你添加了「import android.R;」試圖做一個快速修復,刪除該行

3)檢查你的AndroidManifest.xml文件,看包名是否正確。如果您複製了一個示例,很可能這是錯誤的,並且是您的問題的根源。

4)我遇到了同樣的問題。我沒有任何說明「import something.R」的行。清潔和重建也沒有解決問題。

原來是因爲佈局xml文件的名稱。這些文件只能包含小寫字母,數字或下劃線。當我將文件名(以及引用它的所有內容)從myLayout.xml更改爲my_layout.xml時,一切正常。

5)我剛剛有這個問題。這是因爲我有一個冗餘的菜單資源引用了一個不存在的字符串。刪除菜單XML和後面傳來R.

0

我是收到這個錯誤,我更新了SDK工具和包後。我認爲更新沒有正常工作,經過很多頭撓,我只是嘗試使用SDK管理器工具再次更新SDK包,然後一切正常。