1

我有这个代码片段让我的本地通知在奥利奥设备上工作。

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
4

2 回答 2

0

Oreo 是 android 8。
而不是您的代码,使用以下代码:

if (Build.VERSION.SDK_INT >= 26) {
    NotificationChannel channel = new NotificationChannel(CHANNEL_ID, 
            CHANNEL_NAME,
            level);
    manager.createNotificationChannel(channel);
}
于 2018-11-22T18:22:18.997 回答
0

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

  • 删除 {projectDir}/.idea/libraries 文件夹
  • 文件 -> 将项目与 Gradle 文件同步
  • 文件 -> 将项目与文件系统同步
于 2018-10-30T09:56:57.683 回答