Skip to content

D/yandex.maps.runtime: Java object is already finalized. Nothing to do. #304

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
DementorAl opened this issue Jul 19, 2018 · 6 comments
Open

Comments

@DementorAl
Copy link

DementorAl commented Jul 19, 2018

Запускаю карту, навешиваю CameraListener, при движении карты очищаю mapObjects и расставляю точки по видимой области. После нескольких движений карты, которые обрабатываются корректно листенер перестает вызываться и в логах начинается спам сообщения:
D/yandex.maps.runtime: Java object is already finalized. Nothing to do.
Можете подсказать в чем проблема?

@bedbug85
Copy link

bedbug85 commented Aug 9, 2018

Добрый день!

Удалось решить проблему?
У меня та же ошибка, поделитесь опытом, если удалось решить.

Спасибо.

@saint13
Copy link

saint13 commented Aug 9, 2018 via email

@bedbug85
Copy link

bedbug85 commented Aug 9, 2018

Спасибо, автор проблемы уже мне ответил и поддержка яндекс тоже.

листенеры нужно явно сохранять:
MapObjectTapListener и InputListener, карта хранит их по weakref, ими владеет приложение.

Если его не сохранять, то в случайные моменты времени он будет переставать работать (соберется garbage collector), и в логе будут такие сообщения.

И это было указано документации яндекс, просто не внимательно посмотрел:
При дальнейшей работе
Listener-объекты, сообщающие о результате многократных операций или состоянии объекта, нужно явно сохранять в памяти:

private final CameraListener cameraListener = new CameraListener() {
// Do something.
}
mapview.getMap().addCameraListener(cameraListener);

@45p3c7
Copy link

45p3c7 commented Dec 18, 2019

Спасибо, автор проблемы уже мне ответил и поддержка яндекс тоже.

листенеры нужно явно сохранять:
MapObjectTapListener и InputListener, карта хранит их по weakref, ими владеет приложение.

Если его не сохранять, то в случайные моменты времени он будет переставать работать (соберется garbage collector), и в логе будут такие сообщения.

И это было указано документации яндекс, просто не внимательно посмотрел:
При дальнейшей работе
Listener-объекты, сообщающие о результате многократных операций или состоянии объекта, нужно явно сохранять в памяти:

private final CameraListener cameraListener = new CameraListener() {
// Do something.
}
mapview.getMap().addCameraListener(cameraListener);

@bedbug85 Не мог бы ты сбросить ссылку где это указано в документации? Буду очень благодарен

@omfg74
Copy link

omfg74 commented Jun 13, 2020

Такая же проблема с нажатием на mapObject но создание strongRef не помогает

@Kanunnikoff
Copy link

@45p3c7 Полагаю, ​рѣчь​ шла объ этомъ.
Понимаю, что въ Вашемъ конкретномъ случаѣ это уже неактуально, но, возможно, кому-то пригодится.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants