solid-software / flutter_vlc_player

📺 Flutter VLC powered video player.
506 stars 247 forks source link

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

Open iamsiby opened 1 year ago

iamsiby commented 1 year ago

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.

kingzeus commented 1 year ago

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 commented 1 year ago

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).

zhubinsheng commented 1 year ago

重启编译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项目 成功运行

flowerlove commented 5 months ago

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