2013-01-23 46 views
0

在活動中,我有一個顯示此錯誤的代碼,但前提是您按下保存。API級別錯誤

Call requires API level 11 (current min is 8): android.widget.SearchView#setSearchableInfo 

如果我改變了android:的minSdkVersion 7,它的工作原理,但是當我再次保存代碼,同樣的錯誤被拋出。然後必須將minSdk重新更改爲8,... 有什麼不對?

+0

不能使用API​​ 8.方法至少需要API 11 – m0skit0

回答

4

SearchView從版本11 ant中存在於Android中。 因此,如果您想在代碼中使用SearchView,則必須將清單中的minSdkVersion設置爲11.如果您輸入的數字小於11,則會發生錯誤,這是正常的,因爲您正在給你的應用程序訪問一些不支持你的應用程序的Android版本。

這可以在這裏看到(感謝@JesseJ):http://developer.android.com/reference/android/widget/SearchView.html

Added in API level 11 
+1

正如在這裏看到:http://developer.android.com /reference/android/widget/SearchView.html –

+0

是的,對@JesseJ。對我們的評論+1。 –

+2

您不必*將* minSdkVersion更改爲11,但您肯定需要添加條件邏輯以在運行時檢查設備的API級別,並且只有在設備運行API 11+時才調用該函數。 – CloudyMusic

4

SearchView可用,因爲API拉特11

由於您的最低SDK是8(低於11),林特會在使用SearchView時發生錯誤。 您可以在方法或類之前使用@TargetApi批註移除該錯誤。 但是,在使用SearchView來檢查它是否可用之前,您必須確保使用條件語句,併爲早期版本提供替代方案。

這裏是你的代碼應該是什麼樣子:

@TargetApi(Build.VERSION_CODES.HONEYCOMB) 
void yourMethod(){ 
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB){ 
     // use SearchView 
    } else { 
     // use some other backward compatible custom view 
    } 
}