2010-07-12 157 views
8

任何想法爲什麼有時Eclipse會破壞並且無法識別它在數秒前做過的代碼?下面的代碼中的「R」在5分鐘前沒有紅色的波浪曲線,我沒有更改任何代碼。這種情況經常發生在Eclipse上,通常我會關閉它並重新啓動它,這是很好的選擇...這次不行。Eclipse無法識別Android上的「R.id ...」

// Initialize view elements 
    mSearchBox  = (EditText) this.findViewById(R.id.edittext_search); 
    mSearchButton = (Button) this.findViewById(R.id.button_search); 

回答

10

聽起來好像R類需要重新生成,請嘗試對佈局文件進行更改並保存,以便項目重建。

+1

謝謝,但那並沒有工作......任何其他的想法。 – taraloca 2010-07-12 13:57:03

+2

檢查您的xml文件中是否存在錯誤,如果其中一個存在錯誤,則可能導致生成R失敗。你應該能夠看到在Android控制檯的任何錯誤,再加上檢查「問題」窗口。 – 2010-07-12 14:07:34

+0

謝謝......我在我的一個xml文件中遇到了錯誤。更正它,現在問題已修復。 – taraloca 2010-07-12 14:28:23

11

你不小心導入了android.R。*;在任何情況下?我進口的這一個,這使得日食不承認其它所有生成的R類,請確保您導入從項目中的一個:

import <project_name>.R; 
+0

Aaaarrggh ...這發生在我身上不止一次!不知道我在代碼中如何導入 .R。非常感謝! – 2014-03-18 19:53:36

+1

日食再次咬我。 – lalitm 2014-04-12 13:13:09

1

由於Android的開發工具(ADT)的14,資源等領域R.id.在庫項目中定義時不再是常量。這對於使庫項目可重用而不重新編譯它們是必要的。

R.id.有一個簡單的解決方法。你知道是正確的,但Android認爲這是不正確的。 (假設你的.xml文件是正確的,你的java代碼引用正確的資源,而你沒有「進口android.R;」語句)

  1. 將光標定位在switch語句,並用鼠標右鍵單擊它。
  2. 選擇QUICK FIX。 Eclipse會將您的交換機標記轉換爲if-else if-else語句。
  3. 這應該解決R.id.問題。
5

這是Android的非常普遍的問題只是按照此,

  • 進入工程菜單
  • 選擇 「乾淨」 的選項。
  • 確保「自動構建選項被選中」

做過,你R.java的錯誤將得到解決。

+2

好的...當它工作(需要好運) – 2014-03-18 19:46:24

1

我遇到了同樣的問題。我所做的只是擦除「import android.R」語句,Eclipse自動爲我提供我需要的輸入。一旦我點擊保存,我的所有錯誤都消失了。我試圖弄清楚這三天掙扎了三天。

順便說一句 - 確保你對所有文件都這樣做。

0

除上述答案外,如果您尚未在AndroidManifest.xml中聲明包,或者聲明瞭錯誤的包,則可能會發生此錯誤。確保你有

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="com.example.applicationname" ... 
0

如果你覺得你的代碼是正確的,你仍然得到這個錯誤然後。

右鍵單擊Project >> Build Project,此錯誤將消失。

您也可以將其中項目建成自動

點擊項目選項卡>>自動構建的設置。

希望這可以解決您的問題!

0

您是否將任何圖像文件添加到您的可繪製文件夾?具有無效文件名的圖像文件也會導致相同的問題。