У меня возникла проблема: мое приложение Flutter работает нормально на большинстве устройств, но на некоторых устройствах Android и в эмуляторах оно зависает на экране значка/логотипа при первом запуске.
[IMPORTANT:flutter/shell/platform/android/android_context_gl_impeller.cc(104)] Using the Impeller rendering backend (OpenGLES)
D/com.llfbandit.app_links: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] ... }
D/FLTFireContextHolder: received application context.
I/Choreographer: Skipped XXX frames! The application may be doing too much work on its main thread.
Наблюдения:
Контроллеры GetX инициализируются только после отображения значка/логотипа.
Инициализируются Firebase Crashlytics и Firebase Core.
Проблема возникает в основном на эмуляторах с архитектурой x86_64 или более старых устройствах.
На других устройствах приложение запускается нормально.
Отключение крыльчатки, кажется, решает проблему на некоторых эмуляторах.
У меня возникла проблема: мое приложение Flutter работает нормально на большинстве устройств, но на некоторых устройствах Android и в эмуляторах оно зависает на экране значка/логотипа при первом запуске. [h4]Подробности из моих журналов:[/h4] [code][IMPORTANT:flutter/shell/platform/android/android_context_gl_impeller.cc(104)] Using the Impeller rendering backend (OpenGLES) D/com.llfbandit.app_links: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] ... } D/FLTFireContextHolder: received application context. I/Choreographer: Skipped XXX frames! The application may be doing too much work on its main thread. [/code] [h4]Наблюдения:[/h4] [list] [*]Контроллеры GetX инициализируются только после отображения значка/логотипа. [*]Инициализируются Firebase Crashlytics и Firebase Core. [*]Проблема возникает в основном на эмуляторах с архитектурой x86_64 или более старых устройствах.
На других устройствах приложение запускается нормально. [*]Отключение крыльчатки, кажется, решает проблему на некоторых эмуляторах. [/list] Мой файл main.dart выглядит так: [code]void main() async { WidgetsFlutterBinding.ensureInitialized();
runApp(const MyApp()); } [/code] Использованные плагины, которые запускаются при запуске: [list] [*]Firebase Core / Crashlytics / Messaging [*]AppLinks [*]GetX [/list] [h4]Что я пробовал:[/h4] [list] [*]Задержка тяжелых вызовов API в контроллере заставки. [*]Запуск на физическом устройстве (работает нормально). [*]Отключение Impeller (flutter run --enable-impeller=false) устраняет зависание эмуляторов. [*]Убедитесь, что Firebase инициализируется перед запуском приложения. [/list] [h4]Вопрос:[/h4] [list] [*]Почему мое приложение Flutter зависает на экране значка/логотипа только на некоторых устройствах? [*]Может ли это быть Impeller, Firebase или AppLinks? [*]Как лучше всего избегать этой проблемы для всех устройств и эмуляторов? [/list]