ILiveStreamManager UnsatisfiedLinkError in 5.4.0

Completed

Comments

22 comments

  • yating.liao

    Could you tell me where you are using the code given above?

    0
    Comment actions Permalink
  • jim

    This code runs inside the onValueChange callback from:

    KeyManager.getInstance().listen(KeyTools.createKey(ProductKey.KeyProductType)
    0
    Comment actions Permalink
  • DJI Developer Support
    I tried to call your problematic code module in onValueChange, but I didn't see the exception error you mentioned. You can see if what I wrote in the picture is the same as what you wrote.
    0
    Comment actions Permalink
  • yating.liao

    You can check if you have configured all the live libraries, which are the following.

     

    packagingOptions {
    // 因为mrtc库内部使用了NDK的c++_shared的编译参数
    // 与其他库重复引用了,因此选其中一个即可
    pickFirst 'lib/arm64-v8a/libc++_shared.so'
    pickFirst 'lib/armeabi-v7a/libc++_shared.so'
    }

    packagingOptions {
    doNotStrip "*/*/libconstants.so"
    doNotStrip "*/*/libdji_innertools.so"
    doNotStrip "*/*/libdjibase.so"
    doNotStrip "*/*/libDJICSDKCommon.so"
    doNotStrip "*/*/libDJIFlySafeCore-CSDK.so"
    doNotStrip "*/*/libdjifs_jni-CSDK.so"
    doNotStrip "*/*/libDJIRegister.so"
    doNotStrip "*/*/libdjisdk_jni.so"
    doNotStrip "*/*/libDJIUpgradeCore.so"
    doNotStrip "*/*/libDJIUpgradeJNI.so"
    doNotStrip "*/*/libDJIWaypointV2Core-CSDK.so"
    doNotStrip "*/*/libdjiwpv2-CSDK.so"
    doNotStrip "*/*/libffmpeg.so"
    doNotStrip "*/*/libFlightRecordEngine.so"
    doNotStrip "*/*/libvideo-framing.so"
    doNotStrip "*/*/libwaes.so"
    doNotStrip "*/*/libagora-rtsa-sdk.so"
    doNotStrip "*/*/libc++.so"
    doNotStrip "*/*/libc++_shared.so"
    doNotStrip "*/*/libmrtc_28181.so"
    doNotStrip "*/*/libmrtc_agora.so"
    doNotStrip "*/*/libmrtc_core.so"
    doNotStrip "*/*/libmrtc_core_jni.so"
    doNotStrip "*/*/libmrtc_data.so"
    doNotStrip "*/*/libmrtc_log.so"
    doNotStrip "*/*/libmrtc_onvif.so"
    doNotStrip "*/*/libmrtc_rtmp.so"
    doNotStrip "*/*/libmrtc_rtsp.so"
    }
    0
    Comment actions Permalink
  • jim

    Yes, we are using those packaging options. It appears that the issue is related to a conflict with another library that is including a different version of:

    libc++_shared.so

    Using pickFirst appears to be unsafe because it is picking the version included with the other library that must be missing something that is required by the MSDK. Any ideas on a safe way to do this?

    0
    Comment actions Permalink
  • jim

    It looks like if I put the MSDK dependency first, it resolves to using the one included with the MSDK.

    0
    Comment actions Permalink
  • jim

    Further update: it appears that even that approach is not consistent enough and it will still crash.

    0
    Comment actions Permalink
  • DJI Developer Support
    What model drone are you using?
    0
    Comment actions Permalink
  • jim

    It does not appear to be drone specific. It happens on Mini 3 Pro, Mavic 3 Enterprise, and M30.

    0
    Comment actions Permalink
  • DJI Developer Support
    This problem is mainly caused by the fact that you did not introduce the library libc++_shared.so. As you mentioned before, it conflicts with another library. Is the library a third-party library or provided by dji? It is recommended that you configure according to the library information configured in the official demo
    0
    Comment actions Permalink
  • jim

    Is the library a third-party library or provided by dji?

    It is Mapbox v10.13.0.

    It is recommended that you configure according to the library information configured in the official demo

    Are you saying that using MSDKv5 is incompatible with also using Mapbox v10?

    0
    Comment actions Permalink
  • DJI Developer Support
    Usually, it can be used integratedly. Have you tried to remove this third-party library, and this problem will still occur after importing the library normally in your project? If it still gives the problem, it has nothing to do with this 3rd party library, but you are missing a reference to some library
    0
    Comment actions Permalink
  • jim

    If we remove Mapbox the problem goes away.

    0
    Comment actions Permalink
  • DJI Developer Support
    That problem should be caused by a conflict with a third-party library.
    0
    Comment actions Permalink
  • jim

    Exactly, Mapbox appears to be including the same library (libc++_shared.so) but a different version than the one included with the MSDK, and using the pickFirst directive chooses the Mapbox one sometimes resulting in the crash. Is there no way to resolve this?

    0
    Comment actions Permalink
  • DJI Developer Support
    Because this involves the use of third-party libraries, we cannot modify the things in the third-party libraries.
    0
    Comment actions Permalink
  • jim

    Could you indicate which version of this library the MSDK depends on so we could ask Mapbox if they can update to the same version?

    0
    Comment actions Permalink
  • DJI Developer Support
    We use NDK16b to compile by default, you can look at libc++_shared.so in this version. But it is still recommended that you solve this problem through pickfirst
    0
    Comment actions Permalink
  • Alexboyko426

    jim hi, did you find solution for this issue? I have same here :)  

    0
    Comment actions Permalink
  • jim

    No choice but to downgrade to Mapbox 9.x.

    0
    Comment actions Permalink
  • Alexboyko426

    thanks mate

    0
    Comment actions Permalink
  • Jatin K

    Hello,
    I am facing a similar problem without using Mapbox SDK. The issue occurred after updating to DJI MSDK v5.5.0 and downgrading it is not fixing the issue. So it looks like its due to duplicate 3rd party library. How to find which 3rd party library is affecting the DJI build?

    0
    Comment actions Permalink

Please sign in to leave a comment.