【Android開発】Call requires API Level XX (current min ~)の解決法

  • このエントリーをはてなブックマークに追加

Androidアプリの開発をしているとよく見かけるエラー。

「Call requires API Level XX (current min ~)」

簡単に言ってしまえば、開発する環境に対して制作するアプリのAPIレベルの
最低サポートラインが違うことが原因。

では、どうするか・・・。

たいていは以下の方法で解決できます。

■ 解決方法その1

・AndroidManifest.xmlにAPI Minレベルを追加設定してあげる。

<uses-sdk android:minSdkVersion=”XX” />

例としてCall requires API Level 16 ~のエラーであれば、

<uses-sdk android:minSdkVersion=”16” />



■解決方法その2

・importの参照元を疑う

最新の技術を使う場合はある程度仕方ないことだが、基本的な機能を使用したい場合に開発環境(Android Stuidioなど)のバージョンが新しいことで古いAPIレベルがサポートされないのは非常に困ります。ただ、以前の開発環境では問題なかったなどのケースの場合は、使用したいクラスに関するimport情報を確認してみてください。

例として、カレンダー機能を使ったアプリの実装を考えた場合に最新のAndroid StudioのバージョンでCalendarクラスやGregorianクラスなどを使用するケースではimport内の参照元が以下のようになってしまいます。

import android.icu.util.Calendar
import android.icu.util.GregorianCalendar

これだと、確かにAPIレベル24が最低サポートの対象になってしまいそれ以前のAPIレベルではサポートされなくなってしまいます。
この場合は、以下のように参照元を変更することで解決します。

import java.util.Calendar
import java.util.GregorianCalendar

この参照元に変更することでAPIレベルが15でも16でもサポート対象となりCalendarクラス内のメソッドも使用することが可能になります。

基本は、解決方法その1で記載した内容で対処するのが通常ですが、開発環境が最新過ぎてアプリの対象範囲が極端に狭まるようなら解決方法その2で疑ってみるのもひとつの手です。
それでもダメなら別の方法で実装機能を模索するしかないでしょう。

SNSでもご購読できます。

コメントを残す

*