前幾天非常鬱悶,本來計劃在Android上做個小東西,結果開啟Eclipse建立工程,發現居然沒有R.JAVA!
反覆測試很多次,均未成功,最後試著升級了下ADT,結果搞定,在這裡記下,下次遇到這樣的問題可參考。
另,網上其它解決方案,兄弟們也可以試下!
1、選擇菜單 Project >> Clean ,前提是勾選上 Bulid Automatically(自動構建部署) , 點Clean後會重新構建項目,因為一般情況下,R.java檔案在這個時候會重新更新產生一邊,如果工程有錯,就不會自動產生。 2、選擇工程,右鍵 Android Tools >> Fix Project Properties 這個操作有時候可以修正一些錯誤,但我的不行。 3、還有的說法是重建立一個空的工程,然後把這裡面的代碼,資源檔按照對應的包路徑什麼的拷進去,然後重建一邊,這種方法,也想當於是第一種方法,都是重新構建部暑,性質一樣的。
以上幾種方法都試了,R.java依舊沒出現,整個工程還是一大堆錯誤。隨便點了一個有錯誤的布局XML檔案,看到這樣一個錯誤碼android:layout_height="match_parent" , 之前我都用1.5/1.6/2.1 版本的SDK layout_height裡面沒有看到match_parent這個屬性,然後問群一個兄弟說這個屬性是2.X版本的,想了下,是不是因為工程的SDK版本和eclipse預設的SDK版本問題呢,於是選擇工程,右鍵 Properties >> Android 然後看到右邊的一塊 Target Name, 我的是選中 Android 1.5,然後換了一個 2.1 的 ,點擊Appply ,工程自動構建,看到錯誤少了一些,換到2.2,重新構建,錯誤沒了,久未解決的問題解決了,R.java也出來了,一個字高興啊,啟動模擬器一切正常。
總結下當匯入其它源碼時候,首先要保證源碼的SDK版本和你eclipse預設版本是否一致。 查看源碼版本辦法:開啟default.properties 檔案,看target=android-7 這後面這個數是多少。 版本對應關係:target=android-3 <---> android 1.5 ,target=android-4 <---> android 1.6 , target=android-7 <---> android 2.1 ,target=android-8 <---> android 2.2 其它的自己測試下。
自動產生的工程裡缺少R.java,
按照網上的方法“右擊你的工程(項目)——>Android Tools——>Fix Project Properties ”不管用,
確保項目編譯了一下clean,或是右擊項目-->property-->android-->applay一下 也是不行
google和百度一通後,無果。
繼後跟蹤發現,R.java在工程裡面自動產生,後到官方網站看了協助文檔,發現通過platform-tools路徑下的aapt.exe執行,再經過檢測,aapt.exe程式好像已經損壞,不能執行,故而再sdk setup中執行,擷取該檔案,覆蓋原來的,R.java自動產生了。
問題解決,為何aapt.exe損壞,還有待考證
http://www.cnblogs.com/cngreatwall/archive/2011/03/11/1980525.html
-----------------------------------------------------------------------我是分割線-----------------------------------------------------------------------
我也是r檔案不能產生,但碰到的和上面提到的都不一樣
1、:AndroidManifest.xml
<activity android:name=".Index" android:label="@string/index"> </activity>
index沒定義!
2、包名改了, AndroidManifest.xml裡的還沒改過來。
3、資源檔只能以小寫字母和底線做首字母,隨後的名字中只能出現 a-z、0-9、_ 這些字元。