Для вызова требуется уровень API 16 (текущий минимум равен 14): android.app.Notification.Builder # build
В документации указано, что Notification.Builder добавлен в уровень API 11.
Почему я получаю эту ошибку lint?
Для вызова требуется уровень API 16 (текущий минимум равен 14): android.app.Notification.Builder # build
notification = new Notification.Builder(ctx)
.setContentTitle("Title").setContentText("Text")
.setSmallIcon(R.drawable.ic_launcher).build();
манифеста:
<uses-sdk
android:minSdkVersion="14"
android:targetSdkVersion="17" />
Я что-то пропустил?
Исправьте меня, если я ошибаюсь, но API добавлен на уровне 11, правильно?
Добавлен в уровень API 11
Ответы
Ответ 1
NotificationBuilder.build() требует API уровня 16 или выше. Все, что между уровнями API 11 и 15, следует использовать NotificationBuilder.getNotification(). Поэтому используйте
notification = new Notification.Builder(ctx)
.setContentTitle("Title").setContentText("Text")
.setSmallIcon(R.drawable.ic_launcher).getNotification();
Ответ 2
Совет о уровне API, который должен быть 16, прав. Это сработало для меня
if (Build.VERSION.SDK_INT < 16) {
nm.notify(MY_NOTIFICATION_ID, notificationBuilder.getNotification());
} else {
nm.notify(MY_NOTIFICATION_ID, notificationBuilder.build());
}
У меня возникла проблема, когда уведомление отлично работало на новых устройствах, но не на Android 4.0.4 (API-уровень 15). Я получаю сообщение об исключении из затухания.
@SuppressWarnings ( "deprecation" ) не полностью скрывает его, но я думаю, что это, вероятно, полезно.
Ответ 3
Android Lint - это новый инструмент, внедренный в ADT 16 (и инструменты 16), который сканирует источники проектов Android для потенциальных ошибок. Он доступен как инструмент командной строки, так и интегрирован с Eclipse
http://tools.android.com/tips/lint
Список проверок lint
http://tools.android.com/tips/lint-checks
Для подавления предупреждений lint
http://tools.android.com/tips/lint/suppressing-lint-warnings
http://developer.android.com/reference/android/app/Notification.Builder.html
Если ваше приложение поддерживает версии Android, такие же старые, как уровень API 4, вы можете использовать NotificationCompat.Builder, доступный в библиотеке поддержки Android.
Для библиотеки поддержки
http://developer.android.com/tools/extras/support-library.html
Ответ 4
Вы можете использовать это:
if (Build.VERSION.SDK_INT < 16) {
Notification n = new Notification.Builder(this)
.setContentTitle("New mail from " + "[email protected]")
.setContentText("Subject")
.setSmallIcon(R.mipmap.ic_launcher)
.setContentIntent(pIntent)
.setAutoCancel(true).getNotification();
NotificationManager notificationManager =
(NotificationManager) getSystemService(NOTIFICATION_SERVICE);
notificationManager.notify(0, n);
} else {
Notification n = new Notification.Builder(this)
.setContentTitle("New mail from " + "[email protected]")
.setContentText("Subject")
.setSmallIcon(R.mipmap.ic_launcher)
.setContentIntent(pIntent)
.setAutoCancel(true).build();
NotificationManager notificationManager =
(NotificationManager) getSystemService(NOTIFICATION_SERVICE);
notificationManager.notify(0, n);
}
Ответ 5
У меня такая же проблема в студии android. Я внес незначительные изменения в файл build.gradle(module: app), и проблема была решена.
![введите описание изображения здесь]()
После проекта синхронизации.