Java,Android 項目導入Eclipse常見錯誤


一、導入的jar包不存在:

      

  右鍵工程屬性查看:

    

  導入的第三方jar包不存在;

  解決方法:

  刪除該jar包,得到該jar包並存至本地,再導入該jar包

 

二、中文字符亂碼:

  解決方法:

  右鍵項目屬性:

  

 

  修改字符編碼方式即可

三、編譯器版本不同:

  

解決方法:

  右鍵項目屬性:

   

  修改成相應版本即可

 

四、R.java丟失:

  R,java出現錯誤后,先clean一下project,這樣R.java就丟失了,但是別擔心,刷新項目,R文件會自動更新出來,如果不更新的話一定是程序中有錯誤,一般情況下是命名問題。

  我遇到的情況是:

  (1)不同的layout.xml文件中控件命名沖突(我當時就是直接復制的)。只要把相關的控件命名區別開來,刷新項目,R文件就會自動生成。

  (2)而且相關的目錄文件不能刪除,res文件夾中只能包含文件夾,不能有文件或圖片存在。

  不管怎么樣,只要res文件沒有錯誤,R文件會自動生成。

 

  以下內容屬【轉載】

  (源:http://blog.sina.com.cn/s/blog_81547cad01014xh1.html

  Android 在開發中會自動生成一個 R.java文件,這個文件是自動生成的,最好不要去改。不過有時候這個 java 文件會跟我們捉迷藏,在程序中 R.xx.xxx會出現經常報錯現象。其實只要對着工程點擊鼠標右    鍵 選擇Build Project,R.java 文件又回來。這樣R.xx.xxx 就能 X的出來了。

   導入其他Android時出錯分析

    最近幾天學習android,學習時候難免要導入一些示例,目的為了更加了解android各種API用法,順便也可以學習下別人代碼的寫法。可是導入android源碼后,基本都有錯誤,R.java也不會自動生成,因為是第  一次導入工程,工程有錯R.java就不會自動生成了,工程有錯誤,當然模擬器就不能啟動,也就看不到效果。隨后網上找各種解決方法,網上解決方法主要有這幾種

 

  1、選擇菜單  Project Clean ,前提是勾選上 Bulid Automatically(自動構建部署),點Clean后會重新構建項目,因為一般情況下,R.java文件在這個時候會重新更新生成一邊,如果工程有錯,就不會自動生    成。

  Bulid Automatically設置:window preferences workspace下

  2、選擇工程,右鍵 Android Tools  Fix Project Properties 這個操作有時候可以修正一些錯誤,但我的不行。

  3、還有的說法是重新建一個空的工程,然后把這里面的代碼,資源文件按照對應的包路徑什么的拷進去,然后重新生成一邊,這種方法,也想當於是第一種方法,都是重新構建部暑,性質一樣的。

 

    以上幾種方法都試了,R.java依舊沒出現,整個工程還是一大堆錯誤。隨便點了一個有錯誤的布局XML文件,看到這樣一個錯誤代碼android:layout_height= quot;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 <---> android1.5  ,target=android-4<---> android 1.6 ,

  target=android-7 <---> android2.1  ,target=android-8<---> android 2.2其它的自己測試下。

 

  一張圖片的名字中有一個空格,原來在android資源文件中規定圖片文件的名字中不能有大寫字母、第一個符號不能是數字。

  今天在使用Eclipse是還遇到了一個問題:本來用的好好的開發環境,突然就出錯啦! 

  提示信息大體意思是在tools目錄下找不到adb.exe,我進了tools目錄下一看的確不見了adb.exe,但是然后卻發現了這么一個人文件 adb_has_moved.txt 

  打開一看:The adb tool has moved to platform-tools/

  If you don't see this directory in your SDK,

  launch the SDK and AVD Manager (execute the android tool)

  and install "Android SDK Platform-tools"

  Please also update your PATH environment variable to

  include the platform-tools/ directory, so you can

  execute adb from any location.

  額,原來adb.exe被移動到 Platform-tools目錄下了,於是我想把文件再拷貝回來不就行了嘛。。。

  可是事與願違,就算考回來啦,還是不行ing!!

  還是百度吧,試了一下網上寫的方法:

  在Eclipse中選擇菜單“help->Check for update”,選擇更新ADT即可。按上面操作完成后,重啟Eclipse,問題解決!  

  但是還是不行 。哎糾結啊  

  還有就是改一下環境變量,貌似我改完還是沒有啥變化。 

  一生氣差點把eclipse給重裝了。后來終於找到了解決方法。吧ADT給卸載了,重裝!好啦。。

  看來貌似是ADT升級產生的問題。

 

  五、The type **** cannot be resolved

  這類問題有兩種可能的情況,

  第一種情況是相關類沒有導入,ctrl + shift + o 整理import,快捷導入未導入的包了清除未使用的包。

  第二種情況是也是跟沒有導入相關類的原理一樣,拿個java se的例子來說,某日寫了個簡單的hello world:

public class Hello {
  
  public static void main(String[] args) {

    String greeting = "Hello Java";
    System.out.println(greeting);
  }
}

  結果在編譯時報錯:

  The type java.lang.String cannot be resolved. It is indirectly referenced from required

  總所周知java會默認導入java.lang包,出現這個問題一般就是jdk導入的問題了。當在Eclipse引用不同版本JDK工程時會發生該問題。由於開發環境中應用了多個版本的JDK 或JRE導致的。Eclipse會按照最初的開  發環境默認選擇對應的Jre。如Eclipse上有jdk1.4開發的環境工程,當你在引入高版本jdk1.6開發的工程時,以上問題就出現了。

  解決方法是:

  進入window\preferences\java\Installed JREs 

  按Add --> Browse...--->選擇jre安裝路勁(我的jre路徑是C:\Program Files\Java\jdk1.7.0_25)--->OK

  找到你的工程右鍵點擊Properties選項 出現對話框后 選擇右邊的Libraries選項卡 ---> 單擊Add 了Library...--->

  選擇Jre System Library... ---> Next--->選擇Alternate Jre 下的對應版本jre --> Finish ---> Ok

 

  在寫android程序,java servlet時也會因android sdk或者servlet出現類似的問題,如:

  The type javax.servlet.ServletContext cannot be resolved. It is indirectly referenced from required

  The import android.app cannot be resolved.It is indirectly referenced from required

  對於android:可以在相應的project上右鍵屬性到android選項,更改到需要的android sdk,如當前勾選的就是需要的sdk而出錯了,隨便勾選到另一個sdk再應用,然后再換回到所需的sdk:

   

 

  對於java web servlet:可以在相應project上右鍵屬性或者build path到如下選項界面,

   

  選擇add variable... ——> servlet runtime選擇相應版本的tomcat服務器,如果在servlet runtime中沒有看到有相應的服務器選擇,應該是服務器未創建,可以參照如下方法創建:

  Windows—>Preferences—>Server—>Runtime Environment:

   

  然后再Add:

  

  Next:

   

  起個名字,填好tomcat安裝路徑即可。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM