在活動中,我有一個顯示此錯誤的代碼,但前提是您按下保存。API級別錯誤
Call requires API level 11 (current min is 8): android.widget.SearchView#setSearchableInfo
如果我改變了android:的minSdkVersion 7,它的工作原理,但是當我再次保存代碼,同樣的錯誤被拋出。然後必須將minSdk重新更改爲8,... 有什麼不對?
在活動中,我有一個顯示此錯誤的代碼,但前提是您按下保存。API級別錯誤
Call requires API level 11 (current min is 8): android.widget.SearchView#setSearchableInfo
如果我改變了android:的minSdkVersion 7,它的工作原理,但是當我再次保存代碼,同樣的錯誤被拋出。然後必須將minSdk重新更改爲8,... 有什麼不對?
SearchView從版本11 ant中存在於Android中。 因此,如果您想在代碼中使用SearchView,則必須將清單中的minSdkVersion設置爲11.如果您輸入的數字小於11,則會發生錯誤,這是正常的,因爲您正在給你的應用程序訪問一些不支持你的應用程序的Android版本。
這可以在這裏看到(感謝@JesseJ):http://developer.android.com/reference/android/widget/SearchView.html
Added in API level 11
正如在這裏看到:http://developer.android.com /reference/android/widget/SearchView.html –
是的,對@JesseJ。對我們的評論+1。 –
您不必*將* minSdkVersion更改爲11,但您肯定需要添加條件邏輯以在運行時檢查設備的API級別,並且只有在設備運行API 11+時才調用該函數。 – CloudyMusic
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
}
}
不能使用API 8.方法至少需要API 11 – m0skit0