当前位置: 首页 > 知识库问答 >
问题:

JNI在应用程序中检测到错误:Mapbox android SDK中存在空指针

舒阳州
2023-03-14

我使用的是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。应用程序。fr.dev A/S响应者。de:java\u vm\u ext.cc:542]JNI在应用程序中检测到错误:无法调用java。lang.String com。地图框。geojson。特色null对象2019-04-29 17:58:03.119 24115-24204/com上的id()。应用程序。fr.dev A/S响应者。de:java\u vm\u ext.cc:542]调用CallObjectMethodV 2019-04-29 17:58:03.119 24115-24204/com。应用程序。fr.dev A/S响应者。de:java\u vm\u ext.cc:542]“Thread-2368”prio=10 tid=65 Runnable 2019-04-29 17:58:03.119 24115-24204/com。应用程序。fr.dev A/S响应者。de:java\u vm\u ext.cc:542]| group=“main”scont=0 dsCount=0 flags=0 obj=0x1b740000 self=0x763d1b6800 2019-04-29 17:58:03.119 24115-24204/com。应用程序。fr.dev A/S响应者。de:java\u vm\u ext.cc:542]| sysid=24204 nice=-10 cgrp=default sched=0/0 handle=0x76385da4f0 2019-04-29 17:58:03.120 24115-24204/com。应用程序。fr.dev A/S响应者。de:java_vm_ext.cc:542]| state=R schedstat=(1253639661 195250540 1454)utm=117 stm=8核=7 HZ=100 2019-04-29 17:58:03.120 24115-24204/com。应用程序。fr.dev A/S响应者。de:java\u vm\u ext.cc:542]|堆栈=0x76384df000-0x76384e1000堆栈大小=1009KB 2019-04-29 17:58:03.120 24115-24204/com。应用程序。fr.dev A/S响应者。de:java\u vm\u ext.cc:542]|保持互斥=“mutator lock”(共享保持)。。。。

我的代码中没有指向任何点的日志。我希望这可能是Mapbox SDK的问题,因为当我恢复到6.3.0时,它工作正常。我无法准确指出实际问题。有人能告诉我如何调试这样的崩溃吗?

请让我知道,如果我应该提供更多的信息。

提前谢谢。

编辑:这不是nullpointer的副本,因为这不会发生在我的代码中。正如您可以从日志中看到的那样,它发生在Mapbox sdk内部。另外请注意,抛出的错误是JNI错误。

共有1个答案

微生毅
2023-03-14

我在Mapbox SDK中提出了一个问题,他们给了我一种解决此问题的方法。

拖动时,而不是像这样直接设置geojson

符号ource.setGeoJson(符号集合);

我们应该这样设置:

<代码>符号源。setGeoJson(FeatureCollection.fromFeatures(新ArrayList

他们也更新了SDK。在这里查看问题。

 类似资料: