@RequiresApi的作用仅仅是让编译通过,而并没有避免低版本的系统运行高版本的api的问题,在使用时我们需要自己判断版本号来使用不同的api。
即使在方法添加了@RequiresApi
,代码还是会往下执行,执行到低版本手机中不存在的方法时,会java.lang.NoClassDefFoundError: Failed resolution of错误。
匿名内部类在外部类实例化的时候也同时实例化,所以直接无视了@RequiresApi,必然会进行匿名内部类的实例化,在低于@RequiresApi的版本中直接报错。