Поиск причины сбоя

Общая инструкция: куда смотреть, когда проект FlutterFlow ведёт себя не так, как задумано. Ниже — четыре источника информации, от переменных в реальном времени до логов устройства.

Панель Debug info в Test Mode

Панель Debug info показывает все переменные приложения и их текущие значения в реальном времени. Не нужно бегать по проекту и гадать, что где лежит: видно сразу.

Переменные ищутся по имени и фильтруются по типу и допустимости null. Наблюдая, как значения меняются, вы находите место, где появляется неожиданное.

  1. Запустите приложение в Test Mode — панель Debug info появится слева.
  2. Работайте с приложением: значения в панели обновляются по ходу дела.

Пример

Допустим, в магазине при тестировании выясняется, что переменная неожиданно равна null, и на экран уходит неверная информация.

Переменная со значением null в панели Debug info

По панели видно: переменная выпадающего списка остаётся null, пока пользователь не выберет значение. Причина найдена — остаётся задать начальное значение и проверить заново.

Логи браузера

Запустите приложение в Run или Test Mode и откройте консоль.

Google Chrome

  • Windows — F12 или Ctrl+Shift+J
  • macOS — F12 или ⌘+Option+J

Safari

Включите «Показать меню Разработка» в настройках (вкладка «Дополнения»), затем нажмите ⌘+Option+C.

Ошибки в консоли подсвечены красным.

Логи устройства в десктопном приложении

При запуске через Local Run в десктопном приложении сбои попадают в логи устройства. По ним понятно, что именно пошло не так.

Скажем, пользователь ввёл букву там, где ожидалось число, — ошибка окажется в логе с точным указанием места.

совет

Непонятный текст ошибки можно целиком отдать языковой модели и попросить объяснить — часто это быстрее, чем искать формулировку в поиске.

Логи устройства в десктопном приложении

Всплывающее окно с ошибкой

Если появилось окно с ошибкой, раскройте красную часть (Read More) — внизу будет указан виджет или ошибка, из-за которой сборка или выгрузка не прошла.

Пример 1

Есть текстовый виджет, на нём висит незаконченное действие. При попытке выгрузить проект появится такое:

Всплывающее окно с ошибкой сборки

Чтобы найти виновника в дереве виджетов, читайте список сверху вниз и ориентируйтесь на номер потомка: Child 1 — первый потомок предыдущего виджета, Child 2, 3 и далее — его соседи.

Если вы даёте виджетам имена, искать не придётся — имя будет прямо в окне:

Имя виджета в окне ошибки

инфо

Что именно сломало виджет, видно в списке проблем проекта.

Пример 2

Собственный виджет работал, но после правки в коде появилась опечатка — и вот результат:

Ошибка сборки из-за опечатки в собственном коде

Вторая строка «Error:» прямо указывает: проблема в имени метода в собственном коде.

Ошибки времени выполнения

Такие ошибки возникают не при сборке, а во время работы приложения.

Например, при неверно настроенных правилах безопасности Firestore приложение соберётся без единого замечания, а данные не загрузятся — потому что запрос отклонит база. Пока приложение не обратится к Firestore, проблема себя не проявит.

Такие ошибки показываются в Run Mode отдельным уведомлением:

Уведомление об ошибке времени выполнения

перевод официальной документации FlutterFlow

обновлено

⌕ ESC