【问题标题】:Android Skobbler 2.5.1, calculateRouteWithPoints cause a crashAndroid Skobbler 2.5.1,calculateRouteWithPoints 导致崩溃
【发布时间】:2025-12-12 08:35:02
【问题描述】:

我已将 Android Skobbler 更新到 2.5.1,现在 calculateRouteWithPoints 会导致崩溃:

11-13 17:38:59.277 8669-8669/fr.apila.apila E/SKRouteManager: GPX track navigation is available for commercial use with a enterprise license
11-13 17:38:59.360 8669-8669/fr.apila.apila A/art: art/runtime/java_vm_ext.cc:410] JNI DETECTED ERROR IN APPLICATION: jmethodID was NULL
11-13 17:38:59.360 8669-8669/fr.apila.apila A/art: art/runtime/java_vm_ext.cc:410]     in call to CallDoubleMethodV
11-13 17:38:59.360 8669-8669/fr.apila.apila A/art: art/runtime/java_vm_ext.cc:410]     from void com.skobbler.ngx.routing.SKRouteManager.createroutefromgpspoints(com.skobbler.ngx.positioner.SKPosition[], int, boolean, boolean, boolean, boolean)
11-13 17:38:59.360 8669-8669/fr.apila.apila A/art: art/runtime/java_vm_ext.cc:410] "main" prio=5 tid=1 Runnable
11-13 17:38:59.360 8669-8669/fr.apila.apila A/art: art/runtime/java_vm_ext.cc:410]   | group="main" sCount=0 dsCount=0 obj=0x734472a0 self=0xb4d36500
11-13 17:38:59.360 8669-8669/fr.apila.apila A/art: art/runtime/java_vm_ext.cc:410]   | sysTid=8669 nice=0 cgrp=default sched=0/0 handle=0xb6f1cb34
11-13 17:38:59.360 8669-8669/fr.apila.apila A/art: art/runtime/java_vm_ext.cc:410]   | state=R schedstat=( 3080950577 2781792242 9518 ) utm=247 stm=61 core=1 HZ=100
11-13 17:38:59.360 8669-8669/fr.apila.apila A/art: art/runtime/java_vm_ext.cc:410]   | stack=0xbe689000-0xbe68b000 stackSize=8MB
11-13 17:38:59.360 8669-8669/fr.apila.apila A/art: art/runtime/java_vm_ext.cc:410]   | held mutexes= "mutator lock"(shared held)
11-13 17:38:59.360 8669-8669/fr.apila.apila A/art: art/runtime/java_vm_ext.cc:410]   native: #00 pc 00370aa9  /system/lib/libart.so (art::DumpNativeStack(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, int, char const*, art::ArtMethod*, void*)+160)
11-13 17:38:59.360 8669-8669/fr.apila.apila A/art: art/runtime/java_vm_ext.cc:410]   native: #01 pc 003503b7  /system/lib/libart.so (art::Thread::Dump(std::__1::basic_ostream<char, std::__1::char_traits<char> >&) const+150)
11-13 17:38:59.360 8669-8669/fr.apila.apila A/art: art/runtime/java_vm_ext.cc:410]   native: #02 pc 0025a6fd  /system/lib/libart.so (art::JavaVMExt::JniAbort(char const*, char const*)+740)
11-13 17:38:59.360 8669-8669/fr.apila.apila A/art: art/runtime/java_vm_ext.cc:410]   native: #03 pc 0025add5  /system/lib/libart.so (art::JavaVMExt::JniAbortV(char const*, char const*, std::__va_list)+64)
11-13 17:38:59.360 8669-8669/fr.apila.apila A/art: art/runtime/java_vm_ext.cc:410]   native: #04 pc 000fd1d1  /system/lib/libart.so (art::ScopedCheck::AbortF(char const*, ...)+32)
11-13 17:38:59.360 8669-8669/fr.apila.apila A/art: art/runtime/java_vm_ext.cc:410]   native: #05 pc 00102f01  /system/lib/libart.so (art::ScopedCheck::Check(art::ScopedObjectAccess&, bool, char const*, art::JniValueType*) (.constprop.95)+8172)
11-13 17:38:59.360 8669-8669/fr.apila.apila A/art: art/runtime/java_vm_ext.cc:410]   native: #06 pc 00110b73  /system/lib/libart.so (art::CheckJNI::CallMethodV(char const*, _JNIEnv*, _jobject*, _jclass*, _jmethodID*, std::__va_list, art::Primitive::Type, art::InvokeType)+534)
11-13 17:38:59.360 8669-8669/fr.apila.apila A/art: art/runtime/java_vm_ext.cc:410]   native: #07 pc 00112021  /system/lib/libart.so (art::CheckJNI::CallDoubleMethodV(_JNIEnv*, _jobject*, _jmethodID*, std::__va_list)+36)
11-13 17:38:59.360 8669-8669/fr.apila.apila A/art: art/runtime/java_vm_ext.cc:410]   native: #08 pc 000fa67b  /data/app/fr.apila.apila-2/lib/arm/libngnative.so (_JNIEnv::CallDoubleMethod(_jobject*, _jmethodID*, ...)+22)
11-13 17:38:59.360 8669-8669/fr.apila.apila A/art: art/runtime/java_vm_ext.cc:410]   native: #09 pc 000e9df1  /data/app/fr.apila.apila-2/lib/arm/libngnative.so (Java_com_skobbler_ngx_routing_SKRouteManager_createroutefromgpspoints+144)
11-13 17:38:59.360 8669-8669/fr.apila.apila A/art: art/runtime/java_vm_ext.cc:410]   native: #10 pc 00d73d9f  /data/app/fr.apila.apila-2/oat/arm/base.odex (void com.skobbler.ngx.routing.SKRouteManager.createroutefromgpspoints(com.skobbler.ngx.positioner.SKPosition[], int, boolean, boolean, boolean, boolean)+138)
11-13 17:38:59.360 8669-8669/fr.apila.apila A/art: art/runtime/java_vm_ext.cc:410]   native: #11 pc 00d78827  /data/app/fr.apila.apila-2/oat/arm/base.odex (void com.skobbler.ngx.routing.SKRouteManager.calculateRouteWithPoints(java.util.List, com.skobbler.ngx.routing.SKRouteSettings)+674)
11-13 17:38:59.360 8669-8669/fr.apila.apila A/art: art/runtime/java_vm_ext.cc:410]   native: #12 pc 00e1861d  /data/app/fr.apila.apila-2/oat/arm/base.odex (void fr.apila.apila.activity.MapActivity.launchNavigationWay(java.lang.String, boolean)+1960)
11-13 17:38:59.360 8669-8669/fr.apila.apila A/art: art/runtime/java_vm_ext.cc:410]   native: #13 pc 00e13923  /data/app/fr.apila.apila-2/oat/arm/base.odex (void fr.apila.apila.activity.MapActivity.sendBroadcastParkCalculated()+1398)
11-13 17:38:59.360 8669-8669/fr.apila.apila A/art: art/runtime/java_vm_ext.cc:410]   native: #14 pc 00e12a9f  /data/app/fr.apila.apila-2/oat/arm/base.odex (void fr.apila.apila.activity.MapActivity.calculateParkingDistanceAndTime()+1034)
11-13 17:38:59.360 8669-8669/fr.apila.apila A/art: art/runtime/java_vm_ext.cc:410]   native: #15 pc 00e1e45b  /data/app/fr.apila.apila-2/oat/arm/base.odex (void fr.apila.apila.activity.MapActivity.onRouteCalculationCompleted(com.skobbler.ngx.routing.SKRouteInfo)+2670)
11-13 17:38:59.360 8669-8669/fr.apila.apila A/art: art/runtime/java_vm_ext.cc:410]   native: #16 pc 010341d7  /data/app/fr.apila.apila-2/oat/arm/base.odex (void com.skobbler.ngx.routing.SKRouteManager$1.run()+210)
11-13 17:38:59.360 8669-8669/fr.apila.apila A/art: art/runtime/java_vm_ext.cc:410]   native: #17 pc 007d9037  /data/dalvik-cache/arm/system@framework@boot.oat (???)
11-13 17:38:59.360 8669-8669/fr.apila.apila A/art: art/runtime/java_vm_ext.cc:410]   at com.skobbler.ngx.routing.SKRouteManager.createroutefromgpspoints(Native method)
11-13 17:38:59.360 8669-8669/fr.apila.apila A/art: art/runtime/java_vm_ext.cc:410]   at com.skobbler.ngx.routing.SKRouteManager.calculateRouteWithPoints(SourceFile:327)
11-13 17:38:59.360 8669-8669/fr.apila.apila A/art: art/runtime/java_vm_ext.cc:410]   at fr.apila.apila.activity.MapActivity.launchNavigationWay(MapActivity.java:1371)
11-13 17:38:59.360 8669-8669/fr.apila.apila A/art: art/runtime/java_vm_ext.cc:410]   at fr.apila.apila.activity.MapActivity.sendBroadcastParkCalculated(MapActivity.java:567)
11-13 17:38:59.360 8669-8669/fr.apila.apila A/art: art/runtime/java_vm_ext.cc:410]   at fr.apila.apila.activity.MapActivity.calculateParkingDistanceAndTime(MapActivity.java:1295)
11-13 17:38:59.360 8669-8669/fr.apila.apila A/art: art/runtime/java_vm_ext.cc:410]   at fr.apila.apila.activity.MapActivity.onRouteCalculationCompleted(MapActivity.java:1534)
11-13 17:38:59.360 8669-8669/fr.apila.apila A/art: art/runtime/java_vm_ext.cc:410]   at com.skobbler.ngx.routing.SKRouteManager$1.run(SourceFile:819)
11-13 17:38:59.360 8669-8669/fr.apila.apila A/art: art/runtime/java_vm_ext.cc:410]   at android.os.Handler.handleCallback(Handler.java:739)
11-13 17:38:59.360 8669-8669/fr.apila.apila A/art: art/runtime/java_vm_ext.cc:410]   at android.os.Handler.dispatchMessage(Handler.java:95)
11-13 17:38:59.360 8669-8669/fr.apila.apila A/art: art/runtime/java_vm_ext.cc:410]   at android.os.Looper.loop(Looper.java:148)
11-13 17:38:59.360 8669-8669/fr.apila.apila A/art: art/runtime/java_vm_ext.cc:410]   at android.app.ActivityThread.main(ActivityThread.java:5417)
11-13 17:38:59.360 8669-8669/fr.apila.apila A/art: art/runtime/java_vm_ext.cc:410]   at java.lang.reflect.Method.invoke!(Native method)
11-13 17:38:59.360 8669-8669/fr.apila.apila A/art: art/runtime/java_vm_ext.cc:410]   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
11-13 17:38:59.360 8669-8669/fr.apila.apila A/art: art/runtime/java_vm_ext.cc:410]   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
11-13 17:38:59.360 8669-8669/fr.apila.apila A/art: art/runtime/java_vm_ext.cc:410]

我的代码从 2.5.0 开始并没有改变,就是这样:

SKRouteSettings route = new SKRouteSettings();

route.setNoOfRoutes(1);
route.setRouteMode(SKRouteSettings.SKRouteMode.CAR_SHORTEST);
route.setRouteExposed(true);
SKRouteManager.getInstance().setRouteListener(this);
SKRouteManager.getInstance().calculateRouteWithPoints(coordinatesListResult, route);

还有变量coordinateListResult:

 [SKPosition [latitude=48.852404348, longitude=2.37195116, heading=0.0, horizontalAccuracy=0.0, verticalAccuracy=0.0, speed=0.0, altitude=0.0], SKPosition [latitude=48.8524722, longitude=2.3717558, heading=0.0, horizontalAccuracy=0.0, verticalAccuracy=0.0, speed=0.0, altitude=0.0], SKPosition [latitude=48.8527173, longitude=2.3712392, heading=0.0, horizontalAccuracy=0.0, verticalAccuracy=0.0, speed=0.0, altitude=0.0], SKPosition [latitude=48.8529545, longitude=2.3708284, heading=0.0, horizontalAccuracy=0.0, verticalAccuracy=0.0, speed=0.0, altitude=0.0], SKPosition [latitude=48.8531988, longitude=2.3704617, heading=0.0, horizontalAccuracy=0.0, verticalAccuracy=0.0, speed=0.0, altitude=0.0], SKPosition [latitude=48.8533113, longitude=2.3703109, heading=0.0, horizontalAccuracy=0.0, verticalAccuracy=0.0, speed=0.0, altitude=0.0], SKPosition [latitude=48.8533434, longitude=2.3703526, heading=0.0, horizontalAccuracy=0.0, verticalAccuracy=0.0, speed=0.0, altitude=0.0], SKPosition [latitude=48.8534504, longitude=2.3704626, heading=0.0, horizontalAccuracy=0.0, verticalAccuracy=0.0, speed=0.0, altitude=0.0], SKPosition [latitude=48.8540171, longitude=2.3710404, heading=0.0, horizontalAccuracy=0.0, verticalAccuracy=0.0, speed=0.0, altitude=0.0], SKPosition [latitude=48.8542429, longitude=2.3712707, heading=0.0, horizontalAccuracy=0.0, verticalAccuracy=0.0, speed=0.0, altitude=0.0], SKPosition [latitude=48.8543359, longitude=2.3714113, heading=0.0, horizontalAccuracy=0.0, verticalAccuracy=0.0, speed=0.0, altitude=0.0], SKPosition [latitude=48.854374, longitude=2.3715182, heading=0.0, horizontalAccuracy=0.0, verticalAccuracy=0.0, speed=0.0, altitude=0.0], SKPosition [latitude=48.8548014, longitude=2.3727158, heading=0.0, horizontalAccuracy=0.0, verticalAccuracy=0.0, speed=0.0, altitude=0.0], SKPosition [latitude=48.8549353, longitude=2.3730649, heading=0.0, horizontalAccuracy=0.0, verticalAccuracy=0.0, speed=0.0, altitude=0.0], SKPosition [latitude=48.8551004, longitude=2.3734949, heading=0.0, horizontalAccuracy=0.0, verticalAccuracy=0.0, speed=0.0, altitude=0.0], SKPosition [latitude=48.855232, longitude=2.3737648, heading=0.0, horizontalAccuracy=0.0, verticalAccuracy=0.0, speed=0.0, altitude=0.0], SKPosition [latitude=48.8553718, longitude=2.3740514, heading=0.0, horizontalAccuracy=0.0, verticalAccuracy=0.0, speed=0.0, altitude=0.0], SKPosition [latitude=48.8555259, longitude=2.3744148, heading=0.0, horizontalAccuracy=0.0, verticalAccuracy=0.0, speed=0.0, altitude=0.0], SKPosition [latitude=48.8558703, longitude=2.3741016, heading=0.0, horizontalAccuracy=0.0, verticalAccuracy=0.0, speed=0.0, altitude=0.0], SKPosition [latitude=48.8564505, longitude=2.3734747, heading=0.0, horizontalAccuracy=0.0, verticalAccuracy=0.0, speed=0.0, altitude=0.0], SKPosition [latitude=48.8556876, longitude=2.3716429, heading=0.0, horizontalAccuracy=0.0, verticalAccuracy=0.0, speed=0.0, altitude=0.0], SKPosition [latitude=48.8554605, longitude=2.3706467, heading=0.0, horizontalAccuracy=0.0, verticalAccuracy=0.0, speed=0.0, altitude=0.0], SKPosition [latitude=48.855449, longitude=2.3704872, heading=0.0, horizontalAccuracy=0.0, verticalAccuracy=0.0, speed=0.0, altitude=0.0], SKPosition [latitude=48.8563672, longitude=2.370919, heading=0.0, horizontalAccuracy=0.0, verticalAccuracy=0.0, speed=0.0, altitude=0.0], SKPosition [latitude=48.8570516, longitude=2.3712172, heading=0.0, horizontalAccuracy=0.0, verticalAccuracy=0.0, speed=0.0, altitude=0.0], SKPosition [latitude=48.8568963, longitude=2.3722219, heading=0.0, horizontalAccuracy=0.0, verticalAccuracy=0.0, speed=0.0, altitude=0.0], SKPosition [latitude=48.8571876, longitude=2.3728056, heading=0.0, horizontalAccuracy=0.0, verticalAccuracy=0.0, speed=0.0, altitude=0.0]]

有什么想法吗?在等待您的回复期间,我必须降级到 2.5.0。

【问题讨论】:

    标签: android android-studio skmaps


    【解决方案1】:

    随着2.5.1 SDK的初始版本使用大量点导致SIGSEGV错误。

    需要使用以下资源来解决此问题:https://www.dropbox.com/s/1z2529hvddcbxp5/calculateRouteFromPointsIssue_Public%20SDK_2.5.1_libs.zip?dl=0

    【讨论】:

    • 嗨@SylviA,我最近也遇到了这个问题,但我目前也使用启用流量的自定义 2.5.1 构建。是否有更新版本的 SDK 包含大量点问题的修复以及对启用流量的路由的支持?感谢您的帮助!
    • @Keith,是的,我们可以将其发送给您。请通过 dev@telenav.com 与我们联系