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

Kul*_*mar 27 java android android-studio

我想在我的Android应用程序中实现简单的通知.我正在考虑这个开发者指南

但是收到此错误消息:

Incompatible types.
Required: android.support.v7app.NotificationCompat.Builder
Found: android.support.v4.app.Notification.Compat.Builder
Run Code Online (Sandbox Code Playgroud)

错误消息截图

对于以下代码段:

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

这是我的进口:

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;
Run Code Online (Sandbox Code Playgroud)

我认为正确的NotificationCompat类是导入的.我正在Android Studio v2.1.2用于开发.请帮我解决此错误消息.我是android编程和java的新手.

Dhr*_*uvi 40

更换

 import android.support.v7.app.NotificationCompat;
Run Code Online (Sandbox Code Playgroud)

 import android.support.v4.app.NotificationCompat;
Run Code Online (Sandbox Code Playgroud)

  • 从支持lib 26到27,这引起了一些麻烦.这个解决方案钉它 (5认同)
  • 据我所知,没有导入android.support.v7.app.NotificationCompat; 你在哪里找到的? (4认同)

Mep*_*ros 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!");
Run Code Online (Sandbox Code Playgroud)

如果没有,请交换导入以使用v4版本.


Gop*_*ena 13

最新的工作解决方案 2020

如果您已更新到 Androidx,则
替换

import android.support.v4.app.NotificationCompat
//or
import android.support.v7.app.NotificationCompat
Run Code Online (Sandbox Code Playgroud)

import androidx.core.app.NotificationCompat;
Run Code Online (Sandbox Code Playgroud)