android 開發中遇到的問題及解決方式
1、當import一個新的android專案時,專案名稱上出現一個紅色的感嘆號,程式不能執行。
原因:工程中classpath中指向的包路徑錯誤。
解決方法:在專案名稱上點右鍵選擇Properties,然後選擇Java Bulid Path中的libraries選項,其中出現紅色x號的路徑為錯誤路徑,刪除之後,通過Add External Jars新增正確路徑,點選確定之後,在Package Explorer中重新整理一下。
2、當點選Eclipse中的Properties中的Android選項時,出現“the currently displayed page contains invalid values”。
原因:專案丟失了default.properties檔案所致。
解決方法:從其他專案中重新拷貝一個default.properties檔案,並修改檔案中的target值。或者,將專案根目錄下的project.properties改名為default.properties。
3、引入一個新的專案後,丟失android.jar檔案。
解決方法:在專案名稱上點右鍵,選擇Properties,再選擇Android,再在其中選擇一個project build target,點確定之後,如還有問題,嘗試在專案名稱上點右鍵,然後選擇Android Tools,再點 Fix Project properties
4、出現leak window錯誤。
原因:Android的每一個Activity都有個WindowManager窗體管理器,同樣,構建在某個Activity之上的對話方塊、PopupWindow也有相應的WindowManager窗體管理器。因為對話方塊、PopupWindown不能脫離Activity而單獨存在著,所以當某個Dialog或者某個PopupWindow正在顯示的時候我們去finish()了承載該Dialog(或PopupWindow)的Activity時,就會拋Window Leaked異常了,因為這個Dialog(或PopupWindow)的WindowManager
@Override
public void onPause(){
super.onPause();
if(pw != null) {
pw.dismiss();
}
}
5、Eclipse中顯示行號
在程式碼編寫區的靠近左側邊框處,點右鍵選擇Show Line Numbers,即可顯示行號。
6、在使用ImageView的setImageResource(int res id)方法時遇到一個java.lang.OutOfMemoryError:bitmap size exceeds VM budget錯誤。
原因:圖片佔用的記憶體超出了系統分配的最大記憶體限制,導致記憶體溢位。
解決方法:使用BitmapFactory的帶有Options引數的方法解析圖片資源,具體如程式碼:
<span style="font-size:18px;">BitmapFactoty.options opts = new BitmapFactory.Options();
opts.inSampleSize = 4;
Bitmap bitmap = BitmapFactory.decodeResource(Resources res, int id,opts);</span>
當然當bitmap不用的時候,應該強制回收一下,具體如下:
<span style="font-size:18px;">if(bitmap != null && !bitmap.isRecycled()){
bitmap.recycle();
}</span>
另外應注意程式碼的優化,比如不要重複初始化變數,儘量使用區域性變數,儘量使用static、final、private等關鍵字等等。
java.lang.IllegalStateException: The specified child already has a parent You must call removeView() on the child's parent first