在做WebView页面截长图功能的过程中,由于API
WebView.enableSlowWholeDocumentDraw()
的调用,出现了一个异常:Call requires API level 21 (current min is 16)
出现这个异常的原因:项目的minSdkVersion是16,但是上述API调用要求的最低API版本是21。android lint说会“警告此应用程序所针对的所有版本中没有可用的调用”,也就是会出现版本兼容问题,在21以下版本的系统中,应用调用上述API会崩溃。
消除此警告的办法也很简单:在调用上述API的方法体外加注释即可:
@Target(21)
但还需要在API方法调用时做系统版本判断,以在21以下版本的系统中解决调用崩溃的问题:
if (Build.VERSION.SDK_INT >= 21) {
WebView.enableSlowWholeDocumentDraw();
}
要消除上述警告,还有一个注释可用,略有区别:
@SuppressLint("NewApi")
区别在于:
(1)@TargetApi(apiVersion):消除apiVersion指定的API版本中使用的方法报的android lint错误
(2)@SuppressLint("NewApi"):消除所有版本API中使用的方法报的android lint错误