如果应用程序是在 macOS 上构建的,则在运行应用程序时出现异常:
java.lang.UnsatisfiedLinkError: No implementation found for byte[] dji.midware.natives.SDKRelativeJNI.native_getXXXX(java.lang.String) (tried Java_dji_midware_natives_SDKRelativeJNI_native_1getXXXX and Java_dji_midware_natives_SDKRelativeJNI_native_1getXXXX__Ljava_lang_String_2)
at dji.midware.natives.SDKRelativeJNI.native_getXXXX(Native Method)
at com.dji.g.a.a.b.a(Unknown Source:24)
at com.dji.g.a.a.b.a(Unknown Source:5)
at dji.sdk.sdkmanager.DJISDKManager.<clinit>(Unknown Source:2)
at dji.sdk.sdkmanager.DJISDKManager.getInstance(Unknown Source:0)
在此异常之前,我得到了这个:
java.lang.UnsatisfiedLinkError: dlopen failed: "/data/app/com.gg.wp-D5RSHkictI89woc7FOnlUQ==/lib/arm64/libSDKRelativeJNI.so" .dynamic section has invalid offset: 0x1c350, expected to match PT_DYNAMIC offset: 0x0
at java.lang.Runtime.loadLibrary0(Runtime.java:1016)
at java.lang.System.loadLibrary(System.java:1669)
at dji.midware.natives.SDKRelativeJNI.<clinit>(Unknown Source:2)
at dji.midware.natives.SDKRelativeJNI.native_getXXXX(Native Method)
at com.dji.g.a.a.b.a(Unknown Source:24)
at com.dji.g.a.a.b.a(Unknown Source:5)
at dji.sdk.sdkmanager.DJISDKManager.<clinit>(Unknown Source:2)
at dji.sdk.sdkmanager.DJISDKManager.getInstance(Unknown Source:0)
但是如果我在 Windows 上构建了相同的项目,它就可以正常工作。我在真实设备(三星 Galaxy S10)上运行应用程序,所以它不是 x86 ffmpeg 问题。
我怎样才能解决这个问题??
将这些行添加到 gradle.build 修复问题:
packagingOptions {
exclude 'META-INF/rxjava.properties'
doNotStrip "*/*/libdjivideo.so"
doNotStrip "*/*/libSDKRelativeJNI.so"
doNotStrip "*/*/libFlyForbid.so"
doNotStrip "*/*/libduml_vision_bokeh.so"
doNotStrip "*/*/libyuv2.so"
doNotStrip "*/*/libGroudStation.so"
doNotStrip "*/*/libFRCorkscrew.so"
doNotStrip "*/*/libUpgradeVerify.so"
doNotStrip "*/*/libFR.so"
doNotStrip "*/*/libDJIFlySafeCore.so"
doNotStrip "*/*/libdjifs_jni.so"
doNotStrip "*/*/libsfjni.so"
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句