如何在Android Studio中导入android.support.v7.app.NotificationCompat.Builder类

31

我正在尝试在我的Android应用程序中实现简单的通知。我正在参考这个开发者指南

但是遇到了以下错误信息:

Incompatible types.
Required: android.support.v7app.NotificationCompat.Builder
Found: android.support.v4.app.Notification.Compat.Builder

错误消息截图

以下代码片段:

NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this)
                        .setSmallIcon(R.drawable.ic_launcher)
                        .setContentTitle("My notification")
                        .setContentText("Hello World!");

这里是我的导入内容:

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.app.NotificationCompat;
import android.view.View;
import android.widget.Button;

我认为正确的NotificationCompat类已经被导入。我正在使用Android Studio v2.1.2进行开发。请帮助我处理这个错误信息。我是Android编程和Java的新手。

3个回答

43
 import android.support.v7.app.NotificationCompat;

和;带有

 import android.support.v4.app.NotificationCompat;

5
从支持库版本26升级到27时,这引起了一些头痛。这个解决方案完美解决了问题。 - miroslavign
4
据我所知,这里没有导入android.support.v7.app.NotificationCompat的语句;你是在哪里找到的? - Sobvan
@Sobvan 没错,我在 developer.android.com 上搜索了这个包名,但并不存在这样的东西。 - Hossein Shahdoost

29
这些构建器方法的返回类型返回 NotificationCompat.Builder 的 v4 版本。v7 NotificationCompat.Builder 扩展了 v4 版本,并且在很大程度上只是继承了它的方法,这意味着返回类型不会改变。
文档: 如果您需要 v7 版本(支持 NotificationCompat.MediaStyle),只需将其转换即可。
NotificationCompat.Builder mBuilder = (android.support.v7.app.NotificationCompat.Builder) new NotificationCompat.Builder(this)
                    .setSmallIcon(R.drawable.ic_launcher)
                    .setContentTitle("My notification")
                    .setContentText("Hello World!");

如果没有,请将您的导入更改为使用v4版本。

你们的v7文档链接已经失效了 - 它只是跳转到一个索引页面,其中包含了v4 NotificationCompat的条目,还有一个看起来应该是v7 NotificationCompat的条目,但实际上只是链接回同一个索引页面... - Jules

14

2020年最新可用解决方案

如果你已经更新到Androidx,则将以下内容替换:

import android.support.v4.app.NotificationCompat
//or
import android.support.v7.app.NotificationCompat

随着

import androidx.core.app.NotificationCompat;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接