Как отлаживать нативный Android, вызванный из Flutter Pllatform Channel
Кажется, я не могу понять, как заставить работать отладку для собственного модуля Android, вызываемого из приложения Flutter через канал платформы. Я использую образец из документации Flutter (https://flutter.dev/docs/development/platform-integration/platform-channels). Я пробовал следующее:
- Откройте проект Flutter в IntelliJ
- Щелкните правой кнопкой мыши папку Android и выберите Flutter | Откройте Android-модуль в Android Studio
- Android Studio открывает собственный код Android.
- Установите точки останова в коде Android
- Нажмите Отладка из Android Studio.
- Эмулятор показывает "Ожидание приложения отладчика, ожидающего подключения deubgger", в то время как в Android Studio консоль отладки показывает "Подключено к целевой виртуальной машине, адрес: 'localhost:8601'"
- Запустите приложение Flutter из IntelliJ (я также пробовал отладку из IntelliJ - код флаттера останавливается на точках останова)
- Точки останова для собственного кода Android никогда не ломаются
Что я делаю неправильно?
3 ответа
Я начал другой проект и смог заставить его работать.
Чтобы отладить код Flutter, запустите отладчик из IntelliJ
Чтобы отладить собственный код Android, щелкните правой кнопкой мыши папку Android и выберите Flutter | Откройте Android-модуль в Android Studio. Запустите отладчик там. Приложение Flutter откроется в эмуляторе, и вы можете устанавливать / нажимать точки останова в собственном коде.
Что сработало для меня, так это запустить приложение в режиме отладки в Android Studio, а затем нажать кнопку «Прикрепить отладчик к процессу Android».
У Flutter есть проблема с отладкой, если вы используете относительные пути. Например, если ваши операторы импорта выглядят следующим образом, отладка не будет работать
import '../app.dart';
Измените эти утверждения на
import 'package:your_package/app.dart';
После этого отладчик заработает. При трепете - хорошая привычка импортировать операторы таким образом.