1. 程式人生 > >android 開發中遇到的問題及解決方式

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

已經沒有誰可以附屬了,所以它的窗體管理器已經洩漏了。解決方法:關閉(finish)某個Activity前,要確保附屬在上面的DialogPopupWindow已經關閉(dismiss)了。

@Override
public void onPause(){
super.onPause();
if(pw != null) {
pw.dismiss();
}
}

5、Eclipse中顯示行號

在程式碼編寫區的靠近左側邊框處,點右鍵選擇Show Line Numbers,即可顯示行號。


6、在使用ImageViewsetImageResource(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>

另外應注意程式碼的優化,比如不要重複初始化變數,儘量使用區域性變數,儘量使用staticfinalprivate等關鍵字等等。

java.lang.IllegalStateException: The specified child already has a parent You must call removeView() on the child's parent first