Выбор ответа Junior Платформенные каналы обновлено
Flutter: MissingPluginException
Вопрос
Что обычно означает MissingPluginException после добавления плагина?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Нативная часть не зарегистрирована, обычно помогает полная пересборка. Исключение говорит, что на другой стороне канала нет обработчика.
Варианты ответа
- Плагин несовместим с Dart 3 и должен быть обновлён до версии с null-safety
- У приложения нет разрешения на доступ к сети, и канал не может соединиться
- Нужно вызвать
WidgetsFlutterBinding.ensureInitialized()в каждом виджете с плагином - Нативная часть не зарегистрирована, обычно помогает полная пересборкаправильный ответ
Разбор
Исключение говорит, что на другой стороне канала нет обработчика. Типичная причина: плагин добавили, но приложение не пересобрали, а hot reload и hot restart нативный код не перекомпилируют. Другие причины: платформа не поддерживается плагином или канал вызван из фонового изолята без инициализации. ensureInitialized вызывают один раз в main, если до runApp нужны каналы.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.