Android Studio中调用高于minSdkVersion版本API, 无提示 (Lint问题),开启api版本检测

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/cui130/article/details/84989154

一. 坑: 调用高于minSdkVersion版本的API时, AS无提示 !
最近重构项目时用到了HandlerThread类, 代码中调用了此类的quitSafely()方法, 结果导致了下面的错误:

调用高版本api导致的crash.png

经过一番折腾, 发现quitSafely()方法是API Level 18添加的, 再看看crash的系统版本, 基本上都是4.3 (4.3对应api level 18)以下的. 毫无疑问这是个版本兼容性问题. 问题找到了, 修复就容易了, 无非是兼容一下低版本 (低于api level 18的系统, 调用quit( )方法).

***关键问题是: 调用高版本的api为啥编译器没有提示 ?! ***

☞ 一般调用大于minSdkVersion版本添加的API时, 编译器是会有提示的 (方法下面会划红线) !! 如下:

调用高于minSdkVersion版本的api是IDE (AS) 的提示.png

二. 解决
又经过一番折腾, 发现屏蔽了lint提示. 项目根目录下有个lint.xml文件, 内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<lint>
   <issue id="NewApi" severity="ignore" />
</lint>

没错, 就是它干的好事 !! 删掉它, 重新build一下项目, 就有提示啦 !!

如果你不想让lint检测太多警告性语法错误可以针对性的屏蔽 ,你可以在你的项目根目录下, 添加一个lint.xml, 但是仅仅只是屏蔽警告检测 ,错误检测一定不要屏蔽,不然很难发现问题。
如下是我的项目lint文件,屏蔽了很多语法检测,可以参考一下:

lint.xml

参考:https://www.jianshu.com/p/dc44b8e5bd14

猜你喜欢

转载自blog.csdn.net/cui130/article/details/84989154
今日推荐