【问题标题】:How to target Android versions LESS THAN a certain build如何定位少于某个版本的 Android 版本
【发布时间】:2020-06-08 21:22:56
【问题描述】:

Android 已弃用 Android 10 上的健康设备配置文件。如果想要拥有可靠的蓝牙医疗设备,这是一个重要的配置文件。 Android 表示使用 BLE 时没有意识到他们自己的 BLE 实现有多糟糕,最重要的是,遵循低能量配置文件(指定不明确)的医疗设备会导致错误和不可靠的通信,这是一个令人头疼的问题(Android 的 HDP 实现是也很差,因为他们不了解配置文件 - 但我们已经设法解决了其中大部分问题,至少它们在平台之间比 BLE 更一致!)。

现在他们已经在 10 中弃用了它,我收到了构建投诉。主要是这个投诉:

Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0.

原来是用gradlew.bat build --warning-mode=all --stacktrace的时候

找出是 HDP 配置文件 API 导致此错误的原因。我希望能够将 Health Device Profile API 最多定位为 9,但排除以上所有内容,因此我不会收到此构建投诉。我的最低版本负责下边界。有没有办法将某些 API 仅针对 9 或更少?

我的猜测是没有。似乎他们所有的选项都是 X+ 版本,从不 X-

【问题讨论】:

  • “是 HDP 配置文件 API 导致了这个错误”——嗯,你确定吗? HDP 配置文件 API 未作为 Gradle 任务 AFAIK 实现,该错误指的是 Gradle 任务和配置问题。

标签: android android-build


【解决方案1】:

你可以使用这样的东西。

// Make sure we're running on Honeycomb or higher to use ActionBar APIs
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
    // Do What you want
    }

更多详情请关注Targeting specific build versions

【讨论】:

  • 感谢您的回复。我一直在做这样的事情很长一段时间,但我认为它不会阻止那些不兼容的错误。我一直在寻找可以做等价的东西,但对于一个类或方法(在这种情况下是一个类)。就像@Target(build)。我做相反的事情是为了避免只支持构建 X+ 的方法/类的问题。我需要 X 的东西-
猜你喜欢
  • 1970-01-01
  • 2014-08-12
  • 1970-01-01
  • 1970-01-01
  • 2010-10-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-02-19
相关资源
最近更新 更多