flutter_vlc_player icon indicating copy to clipboard operation
flutter_vlc_player copied to clipboard

Vlc player crashes on flutter : UnsatisfiedLinkError: dlopen failed: cannot locate symbol "__sfp_handle_exceptions"

Open iamsiby opened this issue 3 years ago • 4 comments

E/VLC/LibVLC(17312): Can't load vlcjni library: java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol "__sfp_handle_exceptions" referenced by "/data/app/~~IV_hnLkzufLguU4L1cJkVg==/com.hpdragon1618.flutter_player_example-0EqQK5u9L-R83s5Pge12jA==/base.apk!/lib/arm64-v8a/libvlc.so"... I/_player_exampl(17312): System.exit called, status: 1 I/AndroidRuntime(17312): VM exiting with result code 1, cleanup skipped.

iamsiby avatar Nov 16 '22 05:11 iamsiby

From a bit of searching it looks like __sfp_handle_exceptions is part of libstdc++ (from GCC), while modern Android NDKs ship with libc++ (Clang).

kingzeus avatar Nov 17 '22 06:11 kingzeus

is there any quick fix for this issue?

From a bit of searching it looks like __sfp_handle_exceptions is part of libstdc++ (from GCC), while modern Android NDKs ship with libc++ (Clang).

iamsiby avatar Nov 17 '22 09:11 iamsiby

重启编译so库 使用同样的ndk版本 ndk21

1.先看引用的vlc-all的版本 2.查看vlc的源码中的docker镜像的版本 3.如image: registry.videolan.org/vlc-debian-android:20210915065913 下载这个镜像:docker pull registry.videolan.org/v2/vlc-debian-android:20210915065913 4.查看images的layer中的这句ANDROID_NDK_VERSION=21 && ANDROID_NDK_SHA256=b65ea2d5c5b68fb603626adcbcea6e4d12c68eb8a73e373bbb9d23c252fc647b && wget -q https://dl.google.com/android/repository/android-ndk-r$ANDROID_NDK_VERSION-linux-x86_64.zip && echo $ANDROID_NDK_SHA256 android-ndk-r$ANDROID_NDK_VERSION-linux-x86_64.zip | sha256sum -c 就知道该vlc版本的引用的ndk的版本号 3.4.3的用的就是21 目测后面用的都是21 5.我是和ffmpeg-kit有冲突,用ndk21重新编译了ffmpeg-kit 6.重新运行flutter项目 成功运行

zhubinsheng avatar Mar 16 '23 08:03 zhubinsheng

如何查看和哪个库有冲突?

flowerlove avatar Apr 17 '24 03:04 flowerlove