首页 > 解决方案 > Android - 无法使用 NotificationCompat.Builder 新构造函数(上下文、字符串)

问题描述


我正在更新一个应用程序,以添加 Android 8+ 支持,我试图让应用程序通知正常工作(使用现在需要的通道),但由于某种原因我不能使用新的 NotificationCompat.Builder 构造函数(上下文, 细绳)。我已经更新了我的 buildToolsVersion(目前为28.0.3),如此处所示但我仍然无法使用新的构造函数。

//IDE won't let me use:
NotificationCompat.Builder builder = new NotificationCompat.Builder(context, "channelId");

//While this works fine:
NotificationCompat.Builder builder = new NotificationCompat.Builder(context);

关于为什么会发生这种情况的任何想法?我已经尝试找到解决方案,但其中大多数只是告诉您更新 buildToolsVersion。

相关 build.gradle 代码:

android {
    compileSdkVersion 27
    buildToolsVersion '28.0.3'
    defaultConfig {
        ...
        minSdkVersion 16
        targetSdkVersion 27
        ...  
}  
dependencies {
    ...
    implementation 'com.android.support:support-v4:27.1.1'
    implementation 'com.android.support:design:27.1.1'
    implementation 'com.android.support:appcompat-v7:27.1.1'
    ...
}

标签: javaandroidnotifications

解决方案


我发现了发生了什么,原来 build.gradle 文件有一个配置脚本,它覆盖了我所有的支持依赖版本以使用 v25.3.0。删除该脚本后,导入了正确的库并解决了问题。

//This script
...
if (requested.group == 'com.android.support') {
    if (!requested.name.startsWith("multidex")) {
        details.useVersion '25.3.0'
    }
}

推荐阅读