You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android库中@RequiresApi注解未触发Lint警告问题咨询

解决@RequiresApi注解未触发Lint警告的问题

我来帮你排查下这个困扰——在Android库项目的方法上添加了@RequiresApi注解,应用调用时Lint却没按预期触发版本要求警告的问题,结合EncryptedSharedPreferences这类库的使用场景,常见的原因和解决办法如下:

  • 检查库项目的注解依赖与配置
    首先要确认你用的是正确的注解类:androidx.annotation.RequiresApi(适配AndroidX)或android.support.annotation.RequiresApi(旧support库),并且在库的build.gradle中已经引入了对应的注解依赖,比如:

    implementation 'androidx.annotation:annotation:1.6.0'
    

    同时检查库的Lint配置是否禁用了相关检查,确保lintOptions里没有关闭NewApi规则:

    lintOptions {
        // 不要出现 disable 'NewApi' 这样的配置
        checkAllWarnings true // 可选,确保所有警告都被检查
    }
    
  • 确认应用项目的Lint配置开启了版本检查
    应用侧的build.gradle里,要保证Lint的checkNewApi选项是开启状态,且没有禁用NewApi规则:

    lintOptions {
        checkNewApi true
        // 避免将 'NewApi' 加入disable列表
    }
    

    另外,你可以手动触发一次完整的Lint检查(Analyze -> Inspect Code...),有时候自动检查可能会遗漏。

  • 验证调用场景是否符合警告触发条件
    只有当应用的minSdkVersion低于注解指定的API级别时,Lint才会触发警告。比如你注解了@RequiresApi(23),但应用的minSdkVersion设为24,那自然不会有警告。
    还有一种情况:如果调用代码已经通过if (Build.VERSION.SDK_INT >= 23) { ... }做了版本判断,Lint会认为你已经处理了版本兼容,也不会触发警告。

  • 排查库的依赖与同步问题
    如果是本地依赖库(比如project(':library')),先确认库的代码已经同步,注解确实存在于目标方法上;如果是远程依赖,要核对依赖的版本号,确保拉取的库版本已经包含了@RequiresApi注解,避免引用了未添加注解的旧版本。

  • 清除Android Studio的Lint缓存
    有时候缓存会导致Lint检查不更新,你可以尝试清除缓存:点击File -> Invalidate Caches...,勾选Invalidate and Restart,重启后再重新运行Lint检查。

内容的提问来源于stack exchange,提问作者yausername

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 20:27:43