本文已参与「新人创作礼」活动,一起开启掘金创作之路。
在功能中使用了一个第三方库,在编译apk的时候总是报错,找不到类
警告: 无法找到类型 'RequiresApi' 的注释方法 'value()': 找不到android.support.annotation.RequiresApi的类文件
找源头,首先查找google官方文档,看RequiredApi这个类是从那一版本开始有的,developer.android.com/reference/a…
如下图,一般会在页面右上角写上这个类是从那一版开始添加的
但不幸的是整个android.support.annotation包都没有写,但是还有另一个办法,页面左侧的树状菜单中有个选项,可以选api版本,如果所选版本没有对应类,则对应类会在树状菜单中变成灰色。
但不幸的事情又发生了,我选成API 1,android.support.annotation依然没有变成灰色,说明RequiresApi应该从API1就有了,但实际情况是这样么?
于是我打开本地的Android SDK目录,定位到/extras/android/m2repository/com/android/support/目录 找到support-annotations,目前我用的是23.0.0,我就找到这个版本的jar,解压看下,它到底有没有RequiresApi这个类。实际情况是没有,于是我继续往高版本找,发现直到24.0.0才有这个类。 看来这个Google的文档也相当不严谨啊。这种错误也可以犯。以后也不能完全相信官方文档了。
目前这个包不再作为support库来维护(developer.android.com/topic/libra…](developer.android.com/jetpack) 的一部分,使用AndroidX取代。建议在所有新项目中使用 AndroidX 库。您还应该考虑将现有项目迁移到 AndroidX。要查找映射到此已弃用类的 AndroidX 类,请参阅 AndroidX 支持库类映射。