ILiveStreamManager UnsatisfiedLinkError in 5.4.0

已完成

评论

22 条评论

  • yating.liao

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

    0
    评论操作 固定链接
  • jim

    This code runs inside the onValueChange callback from:

    KeyManager.getInstance().listen(KeyTools.createKey(ProductKey.KeyProductType)
    0
    评论操作 固定链接
  • 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
    评论操作 固定链接
  • 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
    评论操作 固定链接
  • 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
    评论操作 固定链接
  • jim

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

    0
    评论操作 固定链接
  • jim

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

    0
    评论操作 固定链接
  • DJI Developer Support
    What model drone are you using?
    0
    评论操作 固定链接
  • jim

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

    0
    评论操作 固定链接
  • 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
    评论操作 固定链接
  • 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
    评论操作 固定链接
  • 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
    评论操作 固定链接
  • jim

    If we remove Mapbox the problem goes away.

    0
    评论操作 固定链接
  • DJI Developer Support
    That problem should be caused by a conflict with a third-party library.
    0
    评论操作 固定链接
  • 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
    评论操作 固定链接
  • DJI Developer Support
    Because this involves the use of third-party libraries, we cannot modify the things in the third-party libraries.
    0
    评论操作 固定链接
  • 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
    评论操作 固定链接
  • 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
    评论操作 固定链接
  • Alexboyko426

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

    0
    评论操作 固定链接
  • jim

    No choice but to downgrade to Mapbox 9.x.

    0
    评论操作 固定链接
  • Alexboyko426

    thanks mate

    0
    评论操作 固定链接
  • 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
    评论操作 固定链接

请先登录再写评论。