Обнаружена ошибка JNI в приложении: нулевой указатель в SDK Mapbox Android - PullRequest
3 голосов
/ 29 апреля 2019

Я использовал mapbox SDK 6.3.0. Я могу добавить многоугольник на карту и разрешить пользователю перетаскивать его, изменив элемент, а затем обновив коллекцию объектов следующим образом:

features.set(features.indexOf(oldFeature), newFeature);
symbolsSource.setGeoJson(symbolsCollection);

Все работало нормально.

Затем я попытался обновить SDK с 6.3.0 до 7.3.0. Затем, внезапно, при перетаскивании, я получаю следующий сбой (прерывистый, но частый)

2019-04-29 17: 58: 03.119 24115-24204 / com.app.fr.dev A / stresponder.de: java_vm_ext.cc:542] JNI ОБНАРУЖЕНА ОШИБКА В ПРИЛОЖЕНИИ: невозможно вызвать java.lang. Строка com.mapbox.geojson.Feature.id () для нулевого объекта 2019-04-29 17: 58: 03.119 24115-24204 / com.app.fr.dev A / stresponder.de: java_vm_ext.cc:542] при вызове CallObjectMethodV 2019-04-29 17: 58: 03.119 24115-24204 / com.app.fr.dev A / stresponder.de: java_vm_ext.cc:542] "Thread-2368" prio = 10 tid = 65 Runnable 2019-04-29 17: 58: 03.119 24115-24204 / com.app.fr.dev A / stresponder.de: java_vm_ext.cc:542] | group = "main" sCount = 0 dsCount = 0 flags = 0 obj = 0x1b740000 self = 0x763d1b6800 2019-04-29 17: 58: 03.119 24115-24204 / com.app.fr.dev A / stresponder.de: java_vm_ext.cc:542] | sysTid = 24204 nice = -10 cgrp = sched по умолчанию = 0/0 handle = 0x76385da4f0 2019-04-29 17: 58: 03.120 24115-24204 / com.app.fr.dev A / stresponder.de: java_vm_ext.cc:542] | состояние = R schedstat = (1253639661 195250540 1454) utm = 117 STM = 8 основных = 7 Гц = 100 2019-04-29 17: 58: 03.120 24115-24204 / com.app.fr.dev A / stresponder.de: java_vm_ext.cc:542] | stack = 0x76384df000-0x76384e1000 stackSize = 1009KB 2019-04-29 17: 58: 03.120 24115-24204 / com.app.fr.dev A / stresponder.de: java_vm_ext.cc:542] | hold mutexes = "блокировка мутатора" (общая задержка) ....

Нет журнала, который указывает на какую-либо точку в моем коде. Я надеюсь, что это может быть проблемой с Mapbox SDK, потому что когда я возвращаюсь обратно к 6.3.0, он работает нормально . Я не могу точно определить реальную проблему. Может кто-нибудь сказать мне, как на самом деле отладить такой сбой?

Пожалуйста, дайте мне знать, если я должен предоставить больше информации.

Заранее спасибо.

Изменить: Это не дубликат nullpointer , потому что это не происходит с моим кодом. Это происходит внутри SDK Mapbox, как вы можете видеть из журнала. Также обратите внимание, что выдаваемая ошибка - это ошибка JNI.

1 Ответ

1 голос
/ 17 июня 2019

Я поднял проблему в Mapbox SDK, и они дали мне способ обойти эту проблему.

При перетаскивании вместо прямой настройки геойсона, как это

symbolsSource.setGeoJson(symbolsCollection);

Мы должны установить это так:

symbolsSource.setGeoJson(FeatureCollection.fromFeatures(new ArrayList<>(symbolsCollection.features())));

Они также обновили SDK. Ищите здесь для решения проблемы.

...