2012-02-16 49 views
0

我自動使用IDEA的智能感知(Alt + Enter),因爲我很習慣知道它會提供哪個選項。所以今天早上我重命名了一些XML ID(LinearLayout的ID)和(可能)以某種方式直接生成了一個條目到R.java文件。後來我想編譯這個項目,但是我總是收到錯誤:<identifier> expected。該R.java看起來像現在這樣如何從R.java中移除外來元素?

public static final class id { 
    public static final int @+id/linearLayoutMessages=0x7f080012; 
    //... other IDs 

顯然在文件中的撕裂是前綴@ + ID/

我試着刪除R.java並重建項目,但它沒有幫助。同樣的錯誤和相同的條目不斷重新生成。我可以通過手動從R.java中刪除該條目來解決此問題(暫時),但每次嘗試重建項目時都會收到此消息。

任何想法爲什麼這個奇怪的條目仍然是持久的,即使刪除R.java? IDEA的版本是11.

+3

你確定你不會在你的XML中意外地有一個「@ + id/@ + id/linearLayoutMessages」的ID嗎? – AndrewKS 2012-02-16 17:34:17

+0

我不是,所以我會再檢查一遍。但我懷疑編譯器不會抱怨非法名稱後,我手動刪除R.java入口讓編譯器向前編譯 – sandalone 2012-02-16 17:45:05

+0

OH MY GOD!你是對的。它只是站在那裏。請回復,以便我可以接受你的回答。 – sandalone 2012-02-16 17:46:36

回答

3

你在XML中有「@ + id/@ + id/linearLayoutMessages」,你很傻!

0

在我的情況下,它是我寫的android:id =「@ + id/52_day_card_image」,這是非法的。解決方案是android:id =「@ + id/fiftytwo_day_card_image」。愚蠢的我,或愚蠢的編譯器,你的選擇

+0

我認爲Java不允許以數字開頭的變量名。 – sandalone 2014-04-04 06:43:15