Android 关于java.lang.UnsatifiedLinkError:org.bytedeco.javacpp.avutil

Android 关于java.lang.UnsatifiedLinkError:org.bytedeco.javacpp.avutil,android,ffmpeg,javacpp,Android,Ffmpeg,Javacpp,我试着在几天内解决它。但它不起作用 以下是完整的错误日志: 02-19 09:41:31.239 17753-17753/com.superdata.cxim E/art: dlopen("/system/lib64/libdl.so", RTLD_LAZY) failed: dlopen failed: cannot locate symbol "__cxa_finalize" referenced by "/system/lib64/libdl.so"... 02-19 09:41:31.3

我试着在几天内解决它。但它不起作用

以下是完整的错误日志:

02-19 09:41:31.239 17753-17753/com.superdata.cxim E/art: dlopen("/system/lib64/libdl.so", RTLD_LAZY) failed: dlopen failed: cannot locate symbol "__cxa_finalize" referenced by "/system/lib64/libdl.so"...
02-19 09:41:31.317 17753-17753/com.superdata.cxim E/art: dlopen("/data/app/com.superdata.cxim-1/lib/arm64/libavutil.so", RTLD_LAZY) failed: dlopen failed: "/data/app/com.superdata.cxim-1/lib/arm64/libavutil.so" is 32-bit instead of 64-bit
02-19 09:41:31.359 17753-17753/com.superdata.cxim E/InputEventReceiver: Exception dispatching input event.
02-19 09:41:31.360 17753-17753/com.superdata.cxim E/MessageQueue-JNI: Exception in MessageQueue callback: handleReceiveCallback
02-19 09:41:31.361 17753-17753/com.superdata.cxim E/MessageQueue-JNI: java.lang.UnsatisfiedLinkError: org.bytedeco.javacpp.avutil
    at java.lang.Class.classForName(Native Method)
    at java.lang.Class.forName(Class.java:309)
    at org.bytedeco.javacpp.Loader.load(Loader.java:390)
    at org.bytedeco.javacpp.Loader.load(Loader.java:358)
    at org.bytedeco.javacpp.avcodec$AVPacket.<clinit>(avcodec.java:1407)
    at com.superdata.cxim.ui.camera.javacv.FFmpegFrameRecorder.<init>(FFmpegFrameRecorder.java:252)
    at com.superdata.cxim.ui.camera.recorder.WXLikeVideoRecorder.initRecorder(WXLikeVideoRecorder.java:174)
    at com.superdata.cxim.ui.camera.recorder.WXLikeVideoRecorder.startRecording(WXLikeVideoRecorder.java:278)
    at com.superdata.cxim.ui.camera.main.NewRecordVideoActivity.startRecord(NewRecordVideoActivity.java:158)
    at com.superdata.cxim.ui.camera.main.NewRecordVideoActivity.onTouch(NewRecordVideoActivity.java:234)
    at android.view.View.dispatchTouchEvent(View.java:8656)
    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2523)
    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2114)
    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2523)
    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2114)
    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2523)
    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2114)
    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2523)
    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2114)
    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2523)
    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2114)
    at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:2511)
    at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1807)
    at android.app.Activity.dispatchTouchEvent(Activity.java:2841)
    at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:2468)
    at android.view.View.dispatchPointerEvent(View.java:8873)
    at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:4831)
    at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:4689)
    at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4188)
    at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4241)
    at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4207)
    at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:4344)
    at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4215)
    at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:4401)
    at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4188)
    at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4241)
    at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4207)
    at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4215)
    at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4188)
    at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:6645)
    at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:6619)
    at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:6572)
    at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:6812)
    at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:185)
    at android.os.MessageQueue.nativePollOnce(Native Method)
    at android.os.MessageQueue.next(MessageQueue.java:148)
    at android.os.Looper.loop(Looper.java:151)

如果您使用的是一些本机库,则可以使用下面的代码使其看起来位于特定位置。将其放入build.gradle文件的defaultConfig中

ndk {
    abiFilters "armeabi-v7a", "x86", "armeabi", "mips"
}

只有在Solaris上才能使用64位Java虚拟机运行32位本机代码。

只需在项目的gradle文件中编译这些行即可

compile(group: 'org.bytedeco', name: 'javacv-platform', version: '1.3'){
    exclude group: 'org.bytedeco.javacpp-presets'
}
compile group: 'org.bytedeco.javacpp-presets', name: 'ffmpeg', version: '3.2.1-1.3'
compile group: 'org.bytedeco.javacpp-presets', name: 'ffmpeg', version: '3.2.1-1.3', classifier: 'android-arm'

你能把代码贴在这些行上吗?@Aftab Hussain这是记录。我们需要查看代码以找出问题所在…@Aftab Hussain Loader.loadorg.bytedeco.javacpp.avutil.class;Loader.loadorg.bytedeco.javacpp.swresample.class;Loader.loadorg.bytedeco.javacpp.avcodec.class;Loader.loadorg.bytedeco.javacpp.avformat.class;Loader.loadorg.bytedeco.javacpp.swscale.class;