アクティビティにこのエラーを示すコードがありますが、保存を押した場合のみです。
Call requires API level 11 (current min is 8): android.widget.SearchView#setSearchableInfo
android:minSdkVersionを7に変更すると機能しますが、コードを再度保存すると、同じエラーがスローされます。次に、minSdkを8に戻す必要があります...何が問題になっていますか?
アクティビティにこのエラーを示すコードがありますが、保存を押した場合のみです。
Call requires API level 11 (current min is 8): android.widget.SearchView#setSearchableInfo
android:minSdkVersionを7に変更すると機能しますが、コードを再度保存すると、同じエラーがスローされます。次に、minSdkを8に戻す必要があります...何が問題になっていますか?
SearchView
API レベル 11 以降で使用できます。
最小 SDK が 8 (11 未満) であるため、Lint を使用するとエラーが発生し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
}
}
SearchView は、バージョン 11 以降の Android に存在します。そのため、コードで SearchView を使用する場合は、マニフェストに minSdkVersion を 11 に設定する必要があります。11 より小さい数値を設定すると、エラーが発生します。アプリをサポートしない一部の Android バージョンにアプリへのアクセスを許可します。
これはここで見ることができます (@JesseJ に感謝): http://developer.android.com/reference/android/widget/SearchView.html
Added in API level 11