天天看點

Android開發中各種問題集錦【11-20】

【11】Android導入項目時出現:Android requires compiler compliance level 5.0 or 6.0. Found '1.4' instead. Please use Android Tools > Fix Project Properties. 的解決方法?

           1. 按提示在工程檔案上 右鍵 -> Android Tools -> Fix Project Properties ,該方法無效。

           2. 手動打開Project Properties -> java Compiler -> 選上Enable project specific settings -> 再選擇 Compiler Compliance Leave(選擇任意一個非預設的值) -> OK 

           3. 重複第2步,将Compiler Compliance Leave選為正确的值(該值一般是目前安裝的JDK版本值,如 jdk 5 對應 1.5 ,jdk 6 對應 1.6),OK。

【12】 在ADT 16.0 中,定義一個ImageVIew的時候 總是提示這個[Accessibility] Missing contentDescription attribute on image警告,雖說可以不理 但總是感覺怪怪的。其實這是ADT 16.0的新特性,在一些沒有文本顯示的控件裡,如imageView和imageButton等,ADT會提示你定義一個android:contentDescription屬性,用來描述這個控件的作用。

【13】如何檢測Android真機攝像頭硬體

如果應用程式未利用manifest聲明對攝像頭需求進行特别指明,則應該在運作時檢查一下攝像頭是否可用。可用 PackageManager.hasSystemFeature() 方法來進行這種檢查,代碼示例如下:

/** 檢查裝置是否提供攝像頭 */ 

private boolean checkCameraHardware(Context context) { 

    if (context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA)){ 

        // 攝像頭存在 
        return true; 

    } else { 

        // 攝像頭不存在 
        return false; 

    } 

}
           

Android裝置可能擁有多個攝像頭,比如向後的攝像頭用于拍照、向前的攝像頭用于攝像。Android 2.3 (API Level 9)以上版本允許利用 Camera.getNumberOfCameras() 方法來檢查裝置可用攝像頭的數量。

【14】Java中異常類體系

         為了友善對于這些可傳遞對象的管理,Java API中專門設計了java.lang.Throwable類,隻有該類子類的對象才可以在系統的異常傳遞體系中進行。該類的兩個子類分别是:

         1、Error類

               該類代表錯誤,指程式無法恢複的異常情況。對于所有錯誤類型以及其子類,都不要求程式進行處理。常見的Error類例如記憶體溢出StackOverflowError等。

         2、Exception類

               該類代表異常,指程式有可能恢複的異常情況。該類就是整個Java語言異常類體系中的父類。使用該類,可以代表所有異常的情況。

         在Java API中,聲明了幾百個Exception的子類分别來代表各種各樣的常見異常情況,這些類根據需要代表的情況位于不同的包中,這些類的類名均以Exception作為類名的字尾。如果遇到的異常情況,Java API中沒有對應的異常類進行代表,也可以聲明新的異常類來代表特定的情況。

         在這些異常類中,根據是否是程式自身導緻的異常,将所有的異常類分為兩種:

         1、RuntimeException及其所有子類

              該類異常屬于程式運作時異常,也就是由于程式自身的問題導緻産生的異常,例如數組下标越界異常ArrayIndexOutOfBoundsException等。

              該類異常在文法上不強制程式員必須處理,即使不處理這樣的異常也不會出現文法錯誤。

         2、其它Exception子類

              該類異常屬于程式外部的問題引起的異常,也就是由于程式運作時某些外部問題導緻産生的異常,例如檔案不存在異常FileNotFoundException等。

              該類異常在文法上強制程式員必須進行處理,如果不進行處理則會出現文法錯誤。

【15】  Android中引入第三方jar包時,運作程式時提示java.lang.NoClassDefFoundError異常的解決方法。

              這個問題個人覺得很怪異,引用的包中就有某個對象類,卻報了這個錯誤,以下是個人的解決方法:

              1、在工程下建立lib檔案夾,将需要的第三方包拷貝進來。

              2、将引用的第三方包,添加進工作的build path。

              3、(關鍵的一步)将lib設為源檔案夾。如果不設定,則程式編譯可以通過,但運作的時候,會報:java.lang.NoClassDefFoundError

【16】 未完待續...