在活动中,我有一个显示此错误的代码,但前提是您按下保存。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