R.layout.main cannot be resolved.

 這幾天閒着沒事就下了個android的SDK來玩玩,下面是我在用eclipse進行android開發環境搭建時遇到的問題 
 
 
問題:
下面代碼中的第12行出錯:R.layout.main cannot be resolved.

<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--> 1 package com.Tealc.DaysBetween;
 2 
 3  import android.R;
 4  import android.app.Activity;
 5 import android.os.Bundle;
 6 
 7 public class DaysBetween extends Activity {
 8     /** Called when the activity is first created. */
 9     @Override
10     public void onCreate(Bundle savedInstanceState) {
11         super.onCreate(savedInstanceState);
12         setContentView(R.layout.main);
13     }
14 }

解決方案
(1) 刪除第3行的 "import android.R;".
(2) 勾選上Eclipse中的"Project->Build Automatically";

原因分析
(1) 刪除"import android.R"之後工程就是從/res文件夾下自動生成的資源文件裏去解析了,否則它會從Android的資源類裏去找。
(2) 但爲什麼勾選上動態構建"Build Automatically",我不是太清楚。剛接觸Eclipse,稍後可能會更明白些。

關於Eclipse的動態構建
  使用Eclipse進行Java開發,您首先注意到的就是它的編譯是多麼智能。進入Preferences(WindowMenu > Preferences)並啓用動態構建(Workbench > Build Automatically)。現在,每當您保存文件時,Eclipse將會自動編譯該文件以及依賴於該文件的文件。因此,當您想運行您的應用程序時,它基本上已經保存好並且是最新版本。當您處理大型代碼基時,這可以節約不少時間。如果您不得不使用其他IDE,那麼您首先失去的就是該特性的簡單性。
  
  當您使用Eclipse時,您將會一次又一次地感受到這樣一個底層原理:IDE瞭解代碼。Eclipse不僅僅是一個能在以文件爲中心的基礎上處理代碼和其他事情的編譯器,它還能夠查看源代碼並聰明地加以處理。它的智能編譯能力通過它能夠明白表達在導入語句中的依賴性而得到了證明。
2010/3/8 更新:在最新的SDK2.1的新建工程裏已經不存在import.android.R,解決方法是將鼠標放到R上,Eclipse會提示你一些fix,如下圖所示。選擇第二項可fix.
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章