Android(安卓)Studio中调用高于minSdkVersion版本API, 无提示 (Lint问题),开启api版本检测
16lz
2021-01-25
一. 坑: 调用高于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"?>
没错, 就是它干的好事 !! 删掉它, 重新build一下项目, 就有提示啦 !!
如果你不想让lint检测太多警告性语法错误可以针对性的屏蔽 ,你可以在你的项目根目录下, 添加一个lint.xml, 但是仅仅只是屏蔽警告检测 ,错误检测一定不要屏蔽,不然很难发现问题。
如下是我的项目lint文件,屏蔽了很多语法检测,可以参考一下:
lint.xml
参考:https://www.jianshu.com/p/dc44b8e5bd14
更多相关文章
- Android(安卓)去掉系统默认提示音、移除音量调节的进度条、增加
- Androids中的System.loadLibrary对于依赖so的加载分析
- Android(安卓)Git 常用命令和规范
- android 6.0的变化
- Android(安卓)targetSDK升级到28,gradle升级4.6遇到的问题
- Bitmaps加载之内存管理
- Android(安卓)Studio 项目导入的正确姿势
- Android(安卓)提示版本更新的实现
- Android(安卓)Studio详细的安装以及环境的搭建过程 2020.02.21