2013-01-23 45 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 
    } 
}