Баг-репорт: «На Android 14 приложении вылетает при попытке включить LED уведомления. Проверить Vibro-motor API.»

Ниже представлен разбор задачи и готовая строка для CSV-файла баг-трекера.

## Контекст проблемы

На устройствах под управлением Android 14 приложение аварийно завершает работу (crash) в момент, когда пользователь пытается активировать LED-уведомления в настройках. Дополнительно требуется проверить корректность работы Vibro-motor API, поскольку оба механизма (LED и вибрация) тесно связаны с системным API уведомлений (`NotificationManager`, `NotificationChannel`).

## Почему это происходит на Android 14

Starting from Android 8.0 (API 26), управление LED и вибрацией для уведомлений перенесено на уровень `NotificationChannel`. В Android 13–14 Google ужесточил разрешения (`POST_NOTIFICATIONS` теперь runtime permission), а также изменил поведение некоторых внутренних флагов канала. Прямое обращение к `Notification.Builder.setLights()` или устаревшим методам `Vibrator` без проверки версии API может приводить к `NullPointerException` или `SecurityException`, что и вызывает краш.

## Что нужно проверить

1. **Версия API**: убедиться, что код оборачивает вызовы в `if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O)`.
2. **NotificationChannel**: проверить, что канал создаётся с корректными флагами `LIGHTS` и `VIBRATION` (`channel.enableLights(true)`, `channel.enableVibration(true)`).
3. **Vibro-motor API**: убедиться, что используется актуальный `VibrationEffect` (API 26+) вместо устаревшего `vibrator.vibrate(long)`.
4. **Разрешения**: проверить наличие `POST_NOTIFICATIONS` в `AndroidManifest.xml` и runtime-запрос на Android 13+.
5. **Логи**: снять `adb logcat` в момент краша, найти stack trace с тегом `AndroidRuntime`.

## Готовая строка для CSV

ID,Заголовок,Описание,Платформа,Версия ОС,Приоритет,Серьёзность,Статус,Шаги воспроизведения,Ожидаемый результат,Фактический результат,Компонент,Назначен,Дата создания
BUG-1042,»Краш приложения при включении LED уведомлений на Android 14″,»Приложение аварийно завершает работу при попытке пользователя включить LED уведомления в настройках. Требуется проверка Vibro-motor API на совместимость с Android 14.»,Android,14 (API 34),High,Critical,Open,»1. Открыть приложение. 2. Перейти в Настройки → Уведомления. 3. Включить переключатель LED уведомлений.»,»Настройка сохраняется, LED активируется без ошибок.»,»Приложение вылетает с ошибкой (crash). В logcat — SecurityException или NullPointerException.»,Notifications / Vibro-motor API,Не назначен,2024-06-10

## Рекомендации по дальнейшим действиям

— Воспроизвести баг на эмуляторе Android 14 (API 34) и на реальном устройстве.
— Приложить `adb logcat` с полным stack trace к тикету.
— Проверить регрессию на Android 12 и 13, чтобы убедиться, что проблема специфична именно для 14-й версии.
— После исправления провести smoke-тест Vibro-motor API отдельным тест-кейсом.


Задайте вопрос нейросети

Не нашли ответ? Спросите ИИ — он подготовит развёрнутую статью.