Unact / yandex_mapkit

Flutter implementation of YandexMapkit
MIT License
135 stars 148 forks source link

Зависание карты #126

Closed vlkigdm closed 2 years ago

vlkigdm commented 3 years ago

Происходит зависание карты при возврате с фона, при запущенных других приложениях и/или долгого нахождения в фоне. Помогает только реинициализация через YandexMapSizeChanged (fix mapkit initialization тоже без толку).

Как повторить: запускаете приложение, уходите в фон, запускаете yandex maps, yandex navigator, google maps и тп ресурсозатратные приложения. При возвращении произойдет зависание.

DCrow commented 3 years ago

Добрый день!

Воспроизводится ли это тестовым приложением? На Android или iOS или обоих это воспроизводится? Так же просьба приложить flutter doctor --verbose

Не совсем понял каким образом вы реинициализируете через onMapSizeChanged

vlkigdm commented 3 years ago
  1. Да, воспроизводится тестовым приложением на эмуляторе Android 11 (API level 30) и устройстве Android 11 (API level 30), для iOS не смотрел, но воспроизводится на iOS не тестовым приложением.
  2. Изменение размера контейнера с YandexMap => YandexMapSizeChangedListener (Java)/MapSizeChangedListener (Swift) onMapWindowSizeChanged => onMapCreated.

[√] Flutter (Channel stable, 2.2.3, on Microsoft Windows [Version 10.0.19042.1052], locale ru-RU) • Flutter version 2.2.3 at C:\Users\User\Flutter • Framework revision f4abaa0735 (5 weeks ago), 2021-07-01 12:46:11 -0700 • Engine revision 241c87ad80 • Dart version 2.13.4

[√] Android toolchain - develop for Android devices (Android SDK version 30.0.2) • Android SDK at C:\Users\User\Android • Platform android-30, build-tools 30.0.2 • Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java • Java version OpenJDK Runtime Environment (build 11.0.8+10-b944.6842174) • All Android licenses accepted.

[X] Chrome - develop for the web (Cannot find Chrome executable at .\Google\Chrome\Application\chrome.exe) ! Cannot find Chrome. Try setting CHROME_EXECUTABLE to a Chrome executable.

[√] Android Studio (version 4.1.0) • Android Studio at C:\Program Files\Android\Android Studio • Flutter plugin can be installed from: https://plugins.jetbrains.com/plugin/9212-flutter • Dart plugin can be installed from: https://plugins.jetbrains.com/plugin/6351-dart • Java version OpenJDK Runtime Environment (build 11.0.8+10-b944.6842174)

[√] IntelliJ IDEA Ultimate Edition (version 2018.3) • IntelliJ at C:\Program Files\JetBrains\IntelliJ IDEA 2018.3 • Flutter plugin can be installed from: https://plugins.jetbrains.com/plugin/9212-flutter • Dart plugin can be installed from: https://plugins.jetbrains.com/plugin/6351-dart

[√] Connected device (1 available) • sdk gphone x86 arm (mobile) • emulator-5554 • android-x86 • Android 11 (API 30) (emulator)

DCrow commented 3 years ago

Не удается воспроизвести ни на iOS, ни на Android. Под обоими делал как вы описали

  1. Запустил приложение
  2. Свернул его в фон
  3. Запустил набор разных приложений
  4. После возврата из фона, приложение без особых проблем продолжало работать.

Просьба приложить видео и более детальный способ как это можно воспроизвести

vlkigdm commented 3 years ago
  1. Видео https://www.youtube.com/watch?v=9KPyAT2Vq7c
  2. Релиз версия с yandex_mapkit: 1.1.1. В дебаг версии плагин YandexMapsMobile сообщает о onMemoryWarning.
DCrow commented 3 years ago

Поправил проблему с onMemoryWarning, также поменял работу при входе во фон и из него для Android.

Посмотрите сейчас проблему удается воспроизвести?(Используя master ветку проекта)

vlkigdm commented 3 years ago

Проблема воспроизводится, да.

topor00 commented 2 years ago

я тоже столкнулся со схожей проблемой. Но при тестировании на разных устройствах, я наблюдаю данную проблему каждый раз на Xiaomi 9T на Android 10 . Справедливости ради, отмечу, что проверял и на других устройствах xiaomi на android 10 (redmi 9 pro) и android 9 (xiaomi mi 6) но такой проблемы не было. Сама проблема проявляется, когда из приложения перехожу на камеру и при возвращении обратно карта зависла

vlkigdm commented 2 years ago

Кажется с 8e0fc41 такой баг не встречается.

DCrow commented 2 years ago

Хорошо, тогда пока закрываю.

Предположу, что и тут и в #173 одинаковая причина была.