Open DementorAl opened 6 years ago
Добрый день!
Удалось решить проблему? У меня та же ошибка, поделитесь опытом, если удалось решить.
Спасибо.
Это ошибка показывает, что вы работаете с объектом в проекте, который уже удален в native lib. Попробуйте убрать удалене объектов с карты.
чт, 9 авг. 2018 г., 9:59 bedbug85 notifications@github.com:
Добрый день!
Удалось решить проблему? У меня та же ошибка, поделитесь опытом, если удалось решить.
Спасибо.
— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/yandexmobile/yandexmapkit-android/issues/304#issuecomment-411657433, or mute the thread https://github.com/notifications/unsubscribe-auth/ABSEm5bHD-N_wVJ0xavaVxQcOuz6EFjmks5uO93JgaJpZM4VWaLp .
Спасибо, автор проблемы уже мне ответил и поддержка яндекс тоже.
листенеры нужно явно сохранять: MapObjectTapListener и InputListener, карта хранит их по weakref, ими владеет приложение.
Если его не сохранять, то в случайные моменты времени он будет переставать работать (соберется garbage collector), и в логе будут такие сообщения.
И это было указано документации яндекс, просто не внимательно посмотрел: При дальнейшей работе Listener-объекты, сообщающие о результате многократных операций или состоянии объекта, нужно явно сохранять в памяти:
private final CameraListener cameraListener = new CameraListener() {
// Do something.
}
mapview.getMap().addCameraListener(cameraListener);
Спасибо, автор проблемы уже мне ответил и поддержка яндекс тоже.
листенеры нужно явно сохранять: MapObjectTapListener и InputListener, карта хранит их по weakref, ими владеет приложение.
Если его не сохранять, то в случайные моменты времени он будет переставать работать (соберется garbage collector), и в логе будут такие сообщения.
И это было указано документации яндекс, просто не внимательно посмотрел: При дальнейшей работе Listener-объекты, сообщающие о результате многократных операций или состоянии объекта, нужно явно сохранять в памяти:
private final CameraListener cameraListener = new CameraListener() { // Do something. } mapview.getMap().addCameraListener(cameraListener);
@bedbug85 Не мог бы ты сбросить ссылку где это указано в документации? Буду очень благодарен
Такая же проблема с нажатием на mapObject но создание strongRef не помогает
@45p3c7 Полагаю, рѣчь шла объ этомъ. Понимаю, что въ Вашемъ конкретномъ случаѣ это уже неактуально, но, возможно, кому-то пригодится.
Запускаю карту, навешиваю CameraListener, при движении карты очищаю mapObjects и расставляю точки по видимой области. После нескольких движений карты, которые обрабатываются корректно листенер перестает вызываться и в логах начинается спам сообщения: D/yandex.maps.runtime: Java object is already finalized. Nothing to do. Можете подсказать в чем проблема?