Open cream-cheeze opened 3 years ago
Попытался решить в обход (мне нужно определить, какие плейсмарки находятся внутри коллекции) – так traverse тоже не работает:
E/exmapkitexampl: JNI ERROR (app bug): attempt to pass an instance of com.yandex.mapkit.map.internal.ClusterizedPlacemarkCollectionBinding as argument 1 to boolean com.unact.yandexmapkit.YandexMapController$1.onCollectionVisitStart(com.yandex.mapkit.map.MapObjectCollection) A/exmapkitexampl: java_vm_ext.cc:578] JNI DETECTED ERROR IN APPLICATION: bad arguments passed to boolean com.unact.yandexmapkit.YandexMapController$1.onCollectionVisitStart(com.yandex.mapkit.map.MapObjectCollection) (see above for details)
Объект ClusterizedPlacemarkCollection передаётся в onCollectionVisitStart, который ожидает MapObjectCollection....
Если ваш вопрос еще актуален, пожалуйста, пришлите нам минимальный собранный пример, демонстрирующий описанную ситуацию. Вы можете выложить его проектом на GitHub, прикрепить к переписке в архиве или загрузить на Яндекс Диск и указать ссылку.
Мы постараемся помочь.
Есть непонятный момент с кластеризованными коллекциями...
У обычной коллекции и кластеризованной общий предок - MapObject, при этом и та и другая могут содержать внутри одинаковые плейсмарки.
При этом, метод MapObject->getParent() возвращает не MapObject, а MapObjectCollection.
В итоге, когда я пытаюсь получить родителя плейсмарка, находящегося внутри ClusterizedPlacemarkCollection, то получаю ошибку вида:
F/exmapkitexampl( 3003): runtime.cc:685] JNI DETECTED ERROR IN APPLICATION: attempt to return an instance of com.yandex.mapkit.map.internal.ClusterizedPlacemarkCollectionBinding from com.yandex.mapkit.map.MapObjectCollection com.yandex.mapkit.map.internal.MapObjectBinding.getParent() F/exmapkitexampl( 3003): runtime.cc:685] from com.yandex.mapkit.map.MapObjectCollection com.yandex.mapkit.map.internal.MapObjectBinding.getParent() F/libc ( 3003): Fatal signal 6 (SIGABRT), code -6 (SI_TKILL) in tid 3003 (exmapkitexample), pid 3003 (exmapkitexample)
Видимо потому, что у плеймарка фактический родитель класса ClusterizedPlacemarkCollection, а в методе объявлено - MapObjectCollection.
P.S. Аналогичная история с наследованием и в iOS, но там ошибок при обращении к getParent() не возникает.