2012-06-22 56 views
-2

我正在從藍牙Android應用程序Blueterm開始修改代碼。在構建項目時,我收到多個錯誤,提示「R無法解析爲變量」。我嘗試清理該項目,以及刪除R.java文件,但沒有成功。我也確保AndroidManifest.xml文件中的包名是正確的。R無法解析爲變量 - Eclipse

我現在被卡住了,真的很喜歡這個任何輸入。

+0

檢查你的XML文件中的錯誤,這可能會導致您的問題。 – Sam

+0

查看是否在錯誤日誌中發現任何與R無關的錯誤。 –

+0

[R無法解析 - Android錯誤]的可能重複(http://stackoverflow.com/questions/885009/r-cannot-be-resolved-android-error) – Tim

回答

0

有幾個原因。

  1. 確保您的變量確實存在。請記住「@ + id/varName」
  2. 確保您沒有導入android.R。*而不是您的項目資源
  3. 請確保您的其他XML文件中沒有任何錯誤。如果有的話它根本無法創建你的R.java文件,因此你應該有一堆錯誤。
+0

1和2不適用。這並不是說他們無法獲得資源ID。他們根本得不到R。 3是最可能的原因。 –

2

看看有問題的文件,看看R是什麼包。如果你將代碼導入到你的項目中,它可能會指向舊包中的R.

例如,我最近將com.android.HttpAuthenticationDialog複製到一個項目中。它引用R,期待它的應用程序包com.android。由於該項目實際上是com.example,com.android.R不存在。

我需要將課程移入com.example包或將import com.example.R;添加到Java文件。

如果您更新了AndroidManifest.xml以使用不同的包,也會發生這種情況。例如,如果您從com.bluetooth更改爲com.mybluetooth,則R類將移至com.mybluetooth.R。任何期望com.bluetooth.R存在的課程都會出現此錯誤。

2

我剛剛使用從一個新項目(R.Java)複製和粘貼,它修復了一切。 R Java缺失。

1

所以,即使我多次固定R.java。我一直有各種各樣的問題。我一個接一個地修復它們。

但我發現了一些奇怪的東西;

在我的SRC文件夾中(對於我的項目)R.java文件夾被鎖定(這是在不在eclipse中的窗口中)。它上面有一個鎖定圖標。我右鍵單擊並獲得它的所有權。清洗並保存後,最終等待eclipse修復它,現在錯誤消失了。

如果您需要知道如何獲取文件的所有權,只需在Google上搜索即可。

如果你知道我的一個文件如何鎖定,這將是非常棒的知道!謝謝!

0

這是由您的android sdk管理器更新引起的。打開SDK管理器,並更新了以下3個工具:

「Android SDK工具」, 「的Android SDK平臺的工具」, 「Android SDK中構建工具」

重新啓動Eclipse,按下「Ctrl +按住Shift + O」

那一切,你的項目應該建立資源