Androidのバグ:@TargetApi(apiVersion):呼び出しにはAPIレベル21が必要です(現在の最小値は16です)



Android Bug Targetapi



APIにより、WebViewページのロングビュー機能を実行中

WebView.enableSlowWholeDocumentDraw()

呼び出し、例外が発生しました:呼び出しにはAPIレベル21が必要です(現在の最小値は16です)



この例外の理由:プロジェクトのminSdkVersionは16ですが、上記のAPI呼び出しに必要な最小APIバージョンは21です。Androidlintは、「このアプリケーションのすべてのバージョンで使用可能な呼び出しがないことを警告します」、つまり、バージョンの互換性の問題が発生します。バージョン21以下のシステムでは、上記のAPIを呼び出すアプリケーションがクラッシュします。

この警告を排除する方法も非常に簡単です。上記のAPIを呼び出すメソッドにinvitroでコメントを追加します。



@Target(21)

ただし、21バージョン未満のシステムでは、APIメソッドが呼び出されたときにシステムバージョンを判断する必要もあります。 通話のクラッシュを解決する 問題:

if (Build.VERSION.SDK_INT >= 21) { WebView.enableSlowWholeDocumentDraw() }

上記の警告を排除するために、わずかな違いはありますが、利用可能なコメントがあります。

@SuppressLint('NewApi')

違いは次のとおりです。



(1)@TargetApi(apiVersion):apiVersionで指定されたAPIバージョンで使用されているメソッドによって報告されたandroidlintエラーを排除します

(2)@SuppressLint( 'NewApi'):すべてのバージョンAPIで使用されるメソッドレポートのandroidlintエラーを排除します