【问题标题】:Android Minimum SDK IssueAndroid 最低 SDK 问题
【发布时间】:2016-05-27 15:02:44
【问题描述】:

我有一个需要使用的功能,但我需要将我的最小 SDK 设置为 23 才能使用它。问题是,我们的应用程序运行在很多较低的 SDK 设备上。有什么方法可以设置我的项目以允许我在编译应用程序的同时仍然使用较低的最低 SDK 目标?

【问题讨论】:

  • ... minimum SDK target? 好吧,minimumSdkVersion 有点意思。 targetSdkVersion 是另外一回事。亲爱的,你有点糊涂了。
  • 是的……是的,你是对的……我有点困惑……星期一,对吧?
  • 不...周五,目前。 ;)

标签: android


【解决方案1】:

我有一个需要使用的功能,但我需要将我的最小 SDK 设置为 23 才能使用它。

您需要将compileSdkVersion 设置为 23。

有什么方法可以设置我的项目,让我在编译应用程序的同时仍然使用较低的最低 SDK 目标?

将您的minSdkVersion 设置为您想要的任何值。将您的 compileSdkVersion 设置为 23 或更高。然后,确保您只在 API 级别 23+ 的设备上调用 canDrawOverlays(),例如通过检查 Build.VERSION.SDK_INT。

【讨论】:

  • 谢谢...我找到了问题。原来问题出在键盘和椅子之间。
  • 我看到一条红线,完成了整个自动完成的事情,但由于某种原因未能在所述自动完成块中看到正确的解决方案。
【解决方案2】:

在尝试调用此函数之前检查 api 是否为 23 或更高:

if (android.os.Build.VERSION.SDK_INT >= 23) {
    Settings.canDrawOverlays(this);
} else {
// I don't think you need to do anything, I believe canDrawOverlays is 
//functionally true for older APIs
}

【讨论】:

    【解决方案3】:

    您已经看过Supporting Different Platform Versions 页面了吗?

    如果您想在所有平台上使用方法canDrawOverlays(...),那么您根本做不到:它仅在版本 23 开始的 API 中受支持。但是,如果您只想在平台版本时使用此 api > = 23(意思是:只在那些安装了至少 Marshmallow 的设备上),那么你可以:

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.MARSHMALLOW) {
        Settings.canDrawOverlays(...)
    }
    

    【讨论】:

      猜你喜欢
      • 2016-06-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多