调用需要API级别16(当前最小值为14):android.app.Notification.Builder #build

pt2*_*121 33 android android-lint

在此输入图像描述文档说在API级别11中添加了Notification.Builder.为什么我会收到此lint错误?

调用需要API级别16(当前最小值为14):android.app.Notification.Builder #build

notification = new Notification.Builder(ctx)
                .setContentTitle("Title").setContentText("Text")
                .setSmallIcon(R.drawable.ic_launcher).build();
Run Code Online (Sandbox Code Playgroud)

表现:

<uses-sdk
    android:minSdkVersion="14"
    android:targetSdkVersion="17" />
Run Code Online (Sandbox Code Playgroud)

我错过了什么吗?

如果我错了,请纠正我但是在11级添加了API,对吗? 在API级别11中添加

sti*_*ike 60

NotificationBuilder.build()需要API级别16或更高级别.API级别11和15之间的任何内容都应该使用NotificationBuilder.getNotification().所以使用

notification = new Notification.Builder(ctx)
                .setContentTitle("Title").setContentText("Text")
                .setSmallIcon(R.drawable.ic_launcher).getNotification();
Run Code Online (Sandbox Code Playgroud)


for*_*ica 17

关于需要16的API级别的提示是正确的.这对我有用

if (Build.VERSION.SDK_INT < 16) {
    nm.notify(MY_NOTIFICATION_ID, notificationBuilder.getNotification());
} else {
    nm.notify(MY_NOTIFICATION_ID, notificationBuilder.build());
}
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是,通知在较新的设备上正常工作,但在Android 4.0.4(API级别15)上没有.我确实得到了eclipse的弃用警告形式.@SuppressWarnings("弃用")并不完全隐藏它,但我认为这可能有帮助.


Rag*_*dan 5

Android Lint是ADT 16(和工具16)中引入的一种新工具,可以扫描Android项目源中的潜在错误.它既可以作为命令行工具使用,也可以与Eclipse集成

http://tools.android.com/tips/lint

对于棉绒检查列表

http://tools.android.com/tips/lint-checks

用于抑制棉绒警告

http://tools.android.com/tips/lint/suppressing-lint-warnings

http://developer.android.com/reference/android/app/Notification.Builder.html

如果您的应用支持的API版本与API级别4一样旧,则可以使用Android支持库中提供的NotificationCompat.Builder.

对于支持库

http://developer.android.com/tools/extras/support-library.html