1. 程式人生 > >Call requires API level 11 (current min is 8): new android.app.Fragment API版本衝突解決辦法

Call requires API level 11 (current min is 8): new android.app.Fragment API版本衝突解決辦法

        我當前的應用程式支援的Android最小本號是8,而我需要使用Fragment這個控制元件,Fragment是API 11之後才有的,所以系統提示我: Call requires API level 11 (current min is 8): new android.app.Fragment 錯誤,截圖如下


        下面我們對上面的解決辦法分條說明:

        @Add @SuppressLint 'NewApi' to ArticleFragment : 選擇了這個辦法後會在當前類檔案中加入一個Import語句:import android.annotation.SuppressLint;並且在類的前面加入一句註解:@SuppressLint("NewApi")。這樣做的結果就是——在當前這個類檔案中不會再提示'NewApi'這一類的錯誤。也就是說隨便我們用哪個版本的API,都不會在有這一類的提示。

        @Add @TargetApi(HONEYCOMB) to 'ArticleFragment' :如果選擇了這個辦法後,會在當前類檔案中加入兩個import語句:import android.annotation.TargetApi;
import android.os.Build; 並且在class檔案之前加入一句註解:@TargetApi(Build.VERSION_CODES.HONEYCOMB)。這樣做的結果就是——告訴編譯器當前的這個類使用的API版本是註解括號中的版本,這樣編譯器在編譯程式時,遇到這個類檔案就會使用括號中的庫來編譯程式,而不是使用AndroidManifest.xml中的mininumApi指定的版本。

Explain Issue(NewApi) 這個選項,看文字大家就知道了,是一個說明文件。這個文件說明了NewApi註解的原理,其實就是上面兩條解釋,我就不再複述了。原文如下:複製不了裡面的文字,我截圖。

        Disable Check In This File Only :這一條的意思是在當前檔案中不要在檢查錯誤,所以這一條最好不好選了。

        Disable Check In This Project : 在當前專案中不檢查,同上。

        Disable Check : 同上

        Clear AllLink Markers: 如果在當前類檔案中有註解資訊,點選這一條就會刪除註解資訊