flutterheremap-navigation

Here sdk flutter libheresdk.so


I am trying to use offline map downloader, but i have crashe when initialize map downloader. I am used example source code from heresdk-navigate-flutter-examples-4.8.1.0\offline_maps_app

Build fingerprint: 'google/sunfish/sunfish:11/RQ3A.210805.001.A1/7474174:user/release-keys'
Revision: 'MP1.0'
ABI: 'arm64'
Timestamp: 2021-08-16 16:33:23+0300
pid: 22919, tid: 23011, name: Thread-60  >>> com.here.sdk.examples.offline_maps_app <<<
uid: 10752
signal 6 (SIGABRT), code -1 (SI_QUEUE), fault addr --------
Abort message: 'terminating with uncaught exception of type std::bad_optional_access: bad_optional_access'
    x0  0000000000000000  x1  00000000000059e3  x2  0000000000000006  x3  0000006d881c7d30
    x4  fefefefefefefeff  x5  fefefefefefefeff  x6  fefefefefefefeff  x7  7f7f7f7f7f7f7f7f
    x8  00000000000000f0  x9  77c5374f4e2510e3  x10 0000000000000000  x11 ffffffc0fffffbdf
    x12 0000000000000001  x13 000004754a10626a  x14 0025566b6e1277b6  x15 00000000037709d0
    x16 00000070c21fec80  x17 00000070c21e0870  x18 0000006d85b68000  x19 0000000000005987
    x20 00000000000059e3  x21 00000000ffffffff  x22 ffffff80ffffffc8  x23 0000006d881c7f80
    x24 0000006d881c7e60  x25 0000006d881c7ea0  x26 b400006f6ddb3610  x27 0000006e1d122530
    x28 b400006e5de3e050  x29 0000006d881c7db0
    lr  00000070c21942a0  sp  0000006d881c7d10  pc  00000070c21942cc  pst 0000000000000000
backtrace:
      #00 pc 000000000004e2cc  /apex/com.android.runtime/lib64/bionic/libc.so (abort+164) (BuildId: 49090ae59e6ae37f8beae53c551820ad)
      #01 pc 000000000235d230  /data/app/~~VW3vzwQP259HNLGUbs0_QA==/com.here.sdk.examples.offline_maps_app-4VSrS3sUW4T3OS0cymNMOw==/lib/arm64/libheresdk.so (BuildId: dbc2f544873797254c27ee9afa70d0ee66f95d35)
      #02 pc 000000000235d388  /data/app/~~VW3vzwQP259HNLGUbs0_QA==/com.here.sdk.examples.offline_maps_app-4VSrS3sUW4T3OS0cymNMOw==/lib/arm64/libheresdk.so (BuildId: dbc2f544873797254c27ee9afa70d0ee66f95d35)
      #03 pc 000000000235a038  /data/app/~~VW3vzwQP259HNLGUbs0_QA==/com.here.sdk.examples.offline_maps_app-4VSrS3sUW4T3OS0cymNMOw==/lib/arm64/libheresdk.so (BuildId: dbc2f544873797254c27ee9afa70d0ee66f95d35)
      #04 pc 0000000002359664  /data/app/~~VW3vzwQP259HNLGUbs0_QA==/com.here.sdk.examples.offline_maps_app-4VSrS3sUW4T3OS0cymNMOw==/lib/arm64/libheresdk.so (BuildId: dbc2f544873797254c27ee9afa70d0ee66f95d35)
      #05 pc 00000000023595c0  /data/app/~~VW3vzwQP259HNLGUbs0_QA==/com.here.sdk.examples.offline_maps_app-4VSrS3sUW4T3OS0cymNMOw==/lib/arm64/libheresdk.so (BuildId: dbc2f544873797254c27ee9afa70d0ee66f95d35)
      #06 pc 00000000008ba86c  /data/app/~~VW3vzwQP259HNLGUbs0_QA==/com.here.sdk.examples.offline_maps_app-4VSrS3sUW4T3OS0cymNMOw==/lib/arm64/libheresdk.so (BuildId: dbc2f544873797254c27ee9afa70d0ee66f95d35)
      #07 pc 00000000009550c4  /data/app/~~VW3vzwQP259HNLGUbs0_QA==/com.here.sdk.examples.offline_maps_app-4VSrS3sUW4T3OS0cymNMOw==/lib/arm64/libheresdk.so (BuildId: dbc2f544873797254c27ee9afa70d0ee66f95d35)
      #08 pc 0000000000568b74  /data/app/~~VW3vzwQP259HNLGUbs0_QA==/com.here.sdk.examples.offline_maps_app-4VSrS3sUW4T3OS0cymNMOw==/lib/arm64/libheresdk.so (here_sdk_sdk_maploader_MapUpdater_checkMapUpdate__CheckMapUpdateCallback+256) (BuildId: dbc2f544873797254c27ee9afa70d0ee66f95d35)
      #09 pc 00000000000066b4  <anonymous:6d78400000>
Lost connection to device.

i used 4.8.1.0 navigate edition flutter doctor:

[✓] Flutter (Channel stable, 2.2.3, on Mac OS X 10.15.7 19H2 darwin-x64, locale en-GB)
[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
[✓] Xcode - develop for iOS and macOS
[✓] Chrome - develop for the web
[✓] Android Studio (version 4.1)
[✓] Connected device (2 available)

Please help.


Solution

  • I have created the instance like so:

    SDKNativeEngine? sdkNativeEngine = SDKNativeEngine.sharedInstance;
    if (sdkNativeEngine == null) {
      throw ("SDKNativeEngine not initialized.");
    }
    
    _mapDownloader = MapDownloader.fromSdkEngine(sdkNativeEngine);
    _mapUpdater = MapUpdater.fromSdkEngine(sdkNativeEngine);
    

    This is basically the unchanged offline_maps_app example from GitHub. Works fine for me, but Flutter doctor says I am using the supported version Flutter (Channel stable, 2.2.2, on macOS 11.3.1 20E241 darwin-arm, locale de-DE), but this should not make a difference.

    Creating the SDKNativeEngine is not necessary, when you already have loaded a MapView, so like in the example above, you just can get it from the sharedInstance.

    Update - I also checked with Flutter 2.2.3 and it worked without problems:

    [✓] Flutter (Channel stable, 2.2.3, on macOS 11.3.1 20E241 darwin-arm, locale de-DE)
        • Flutter version 2.2.3
        • Framework revision f4abaa0735 (7 weeks ago), 2021-07-01 12:46:11 -0700
        • Engine revision 241c87ad80
        • Dart version 2.13.4