@TargetApi(Build.VERSION_CODES.LOLLIPOP)
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
编译器跳过低版本没有API 的报错问题,但实际运行还是可能报错 需要手动判断版本
@TargetApi和@RequiresApi含义
含义
这两个注解的作用仅仅是让编译通过,而并没有避免低版本的系统运行高版本的api的问题,在使用时我们需要自己判断版本号来使用不同的api。 目前官方建议使用@RequiresApi。
解读
即使在方法添加了@RequiresApi,代码还是会往下执行,执行到低版本手机中不存在的方法时,会报错java.lang.NoClassDefFoundError: Failed resolution of.
所以正确的做法是加上版本判断来适应不同的版本。