【问题标题】:Build Version Code O not being recognized correctly构建版本代码 O 无法正确识别
【发布时间】:2018-04-27 02:13:21
【问题描述】:

我有这个代码 sn-p 用于我的本地通知在 Oreo 设备上工作。

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
    NotificationChannel channel = new NotificationChannel(CHANNEL_ID, 
            CHANNEL_NAME,
            level);

    manager.createNotificationChannel(channel);
}

在我的窗口桌面上这很好,没有问题。但是在我的 macbook 上,lint 抱怨 NotificationChannel 需要 SDK 26,而我的最小值是 21。但是,如果我将版本检查更改为

if (Build.VERSION.SDK_INT >= 26) 

错误消失了。我试过重新启动 Android 工作室,清理/重建。没有任何效果。当我进行代码检查并使用建议的提示时,它会将 Version_Code 更改为 26。让它在我的 2 台机器上的行为不同但完全相同的代码有点困扰我。其他人以前见过这个问题吗?

compileSdkVersion = 26
buildToolsVersion = "26.0.2"

minSdkVersion = 21
targetSdkVersion = 26

【问题讨论】:

  • 您是否设置了 targetSdkVersion 以及是否设置了它
  • 与上述相同的问题,但您的 compileSdkVersion 需要为 at least 26 才能使用此字段。
  • 我添加了我的 gradle 语句。它们在两台计算机上都相同,只有 mac 抱怨。
  • 我重新安装了android studio,错误消失了。我认为版本号与它有关。它在 2.3.1 上。

标签: android android-studio android-8.0-oreo notification-channel


【解决方案1】:

从旧项目切换到另一个项目后,android studio 3.2.1 出现同样的问题。很烦人。我通过以下步骤解决了:

  • 删除 {projectDir}/.idea/libraries 文件夹
  • 文件 -> 将项目与 Gradle 文件同步
  • 文件 -> 将项目与文件系统同步

【讨论】:

    【解决方案2】:

    奥利奥是安卓 8。
    取而代之的是您的代码,使用以下代码:

    if (Build.VERSION.SDK_INT >= 26) {
        NotificationChannel channel = new NotificationChannel(CHANNEL_ID, 
                CHANNEL_NAME,
                level);
        manager.createNotificationChannel(channel);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-04-10
      • 2011-07-13
      • 1970-01-01
      • 2011-01-17
      • 1970-01-01
      • 2020-04-11
      • 1970-01-01
      相关资源
      最近更新 更多