构建版本代码O无法正确识别

时间:2018-04-27 02:13:22

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

我有我的本地通知的代码段,可以在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而我的min是21.但是如果我将版本检查更改为

if (Build.VERSION.SDK_INT >= 26) 

错误消失了。我已经尝试重启Android studio,清理/重建。什么都行不通。当我进行代码检查并使用建议的提示时,它将Version_Code更改为26.有点困扰我让它在我的2台机器上行为不同但相同的代码。其他人以前见过这个问题吗?

compileSdkVersion = 26
buildToolsVersion = "26.0.2"

minSdkVersion = 21
targetSdkVersion = 26

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

Oreo是Android8。
使用以下代码代替您的代码:

let newProblem = Object.assign({}, this.problem);
// change any nested property
newProblem.some.value = 1
// assign back the cloned and modified dictionary
this.problem = newProblem