当错误说它不应该时,为啥这在 api 21 上有效

Posted

技术标签:

【中文标题】当错误说它不应该时,为啥这在 api 21 上有效【英文标题】:why does this work on api 21 when the error says it shouldn't当错误说它不应该时,为什么这在 api 21 上有效 【发布时间】:2019-09-05 15:47:02 【问题描述】:

我刚刚将我应用中的 gradle 插件升级到了 3.2 版。

我现在收到一个 lint 错误,指出无法使用已在我的应用程序中使用的 FloatProperty。我的 gradle 文件中的最低 API 级别是 21。错误是:

Class requires API level 24 (current min is 21)

我的问题是,为什么即使在我运行 API 22 的测试手机上也能正常构建和运行?

【问题讨论】:

你的 compileSdkVersion 是什么? compileSdkVersion 28 FloatingProperty 的导入语句看起来像什么? 导入 android.util.FloatProperty 【参考方案1】:

您的compileSdkVersion 本身是 28 与哪些设备可以和不能运行您的应用程序无关。通常,您将其设置为最新版本的 Android SDK。

通常,当您尝试使用比您的minSdkVersion 更新的东西时,开发工具会即时警告您。您可以定期运行完整的 Lint 检查以重新确认。

targetSdkVersion 有助于向后兼容,通常我的描述是“这是您在编写代码时考虑的 Android 版本”。

【讨论】:

以上是关于当错误说它不应该时,为啥这在 api 21 上有效的主要内容,如果未能解决你的问题,请参考以下文章

使用 SqlAlchemy 在 for 循环中更新对象,这在理论上应该有效吗?

为啥提示时无法打开输入文件?

为啥 Firebase 安装过程给我一个错误?扑

仅当查询字符串不同时,为啥会出现 CORS 错误

当它不可能是真的时,为啥我会收到这个错误?

春季安全 |为啥当它们有效时我会得到错误的凭据?