一、導入的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安裝路徑即可。