一. 坑: 调用高于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

更多相关文章

  1. Android(安卓)去掉系统默认提示音、移除音量调节的进度条、增加
  2. Androids中的System.loadLibrary对于依赖so的加载分析
  3. Android(安卓)Git 常用命令和规范
  4. android 6.0的变化
  5. Android(安卓)targetSDK升级到28,gradle升级4.6遇到的问题
  6. Bitmaps加载之内存管理
  7. Android(安卓)Studio 项目导入的正确姿势
  8. Android(安卓)提示版本更新的实现
  9. Android(安卓)Studio详细的安装以及环境的搭建过程 2020.02.21

随机推荐

  1. ANDROID媒体文件扫描
  2. OKhttp上传头像,调用相机相册进行裁剪
  3. Android(安卓)Camera CTS related
  4. Android.Bundle savedInstanceState 的意
  5. 基于android平台开发的计算器
  6. Creating Release Keys and Signing Buil
  7. 按返回键返回到主界面
  8. 编译android源码前的准备
  9. android项目中单实例数据库类
  10. IOS 实现android Toast效果