ILiveStreamManager UnsatisfiedLinkError in 5.4.0
已完成Any ideas why I might see this error after updating to 5.4.0?
java.lang.UnsatisfiedLinkError: No implementation found for int djimrtc.natives.MRTCController.initNativeMRTCCore(java.lang.String) (tried Java_djimrtc_natives_MRTCController_initNativeMRTCCore and Java_djimrtc_natives_MRTCController_initNativeMRTCCore__Ljava_lang_String_2)
Here is the offending code (liveStreamManager.addLiveStreamStatusListener):
final IMediaDataCenter mediaDataCenter = MediaDataCenter.getInstance();
if (mediaDataCenter != null) {
final ILiveStreamManager liveStreamManager = mediaDataCenter.getLiveStreamManager();
if (liveStreamManager != null) {
liveStreamManager.addLiveStreamStatusListener(this);
}
}
-
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"
} -
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?
-
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 -
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 -
jim hi, did you find solution for this issue? I have same here :)
请先登录再写评论。
评论
22 条评论