ffmpeg-kit icon indicating copy to clipboard operation
ffmpeg-kit copied to clipboard

crash on android 15

Open allentown521 opened this issue 1 year ago • 9 comments

version 6.0.3 test on android 15 with 16kb page size enabled: https://developer.android.google.cn/about/versions/15/behavior-changes-all#16-kb

E/AndroidRuntime(12507): java.lang.Error: FFmpegKit failed to start on brand: google, model: sdk_gphone16k_x86_64, device: emu64xa16k, api level: 34, abis: x86_64 arm64-v8a, 32bit abis: , 64bit abis: x86_64 arm64-v8a. E/AndroidRuntime(12507): at com.arthenica.ffmpegkit.NativeLoader.loadLibrary(NativeLoader.java:50) E/AndroidRuntime(12507): at com.arthenica.ffmpegkit.NativeLoader.loadFFmpegKitAbiDetect(NativeLoader.java:130) E/AndroidRuntime(12507): at com.arthenica.ffmpegkit.AbiDetect.(AbiDetect.java:30) E/AndroidRuntime(12507): at com.arthenica.ffmpegkit.NativeLoader.loadNativeAbi(NativeLoader.java:65) E/AndroidRuntime(12507): at com.arthenica.ffmpegkit.NativeLoader.loadFFmpegKit(NativeLoader.java:173) E/AndroidRuntime(12507): at com.arthenica.ffmpegkit.FFmpegKitConfig.(FFmpegKitConfig.java:145) E/AndroidRuntime(12507): at com.arthenica.ffmpegkit.flutter.FFmpegKitFlutterPlugin.registerGlobalCallbacks(FFmpegKitFlutterPlugin.java:168) E/AndroidRuntime(12507): at com.arthenica.ffmpegkit.flutter.FFmpegKitFlutterPlugin.init(FFmpegKitFlutterPlugin.java:652) E/AndroidRuntime(12507): at com.arthenica.ffmpegkit.flutter.FFmpegKitFlutterPlugin.onAttachedToActivity(FFmpegKitFlutterPlugin.java:198) E/AndroidRuntime(12507): at io.flutter.embedding.engine.FlutterEngineConnectionRegistry.add(FlutterEngineConnectionRegistry.java:156) E/AndroidRuntime(12507): at io.flutter.plugins.GeneratedPluginRegistrant.registerWith(GeneratedPluginRegistrant.java:44) E/AndroidRuntime(12507): at allen.town.focus.twitter.x.MainActivity.configureFlutterEngine(MainActivity.java:23) E/AndroidRuntime(12507): at io.flutter.embedding.android.FlutterActivityAndFragmentDelegate.onAttach(FlutterActivityAndFragmentDelegate.java:213) E/AndroidRuntime(12507): at io.flutter.embedding.android.FlutterActivity.onCreate(FlutterActivity.java:634) E/AndroidRuntime(12507): at android.app.Activity.performCreate(Activity.java:8980) E/AndroidRuntime(12507): at android.app.Activity.performCreate(Activity.java:8958) E/AndroidRuntime(12507): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1526) E/AndroidRuntime(12507): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:4013) E/AndroidRuntime(12507): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4218) E/AndroidRuntime(12507): at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:112) E/AndroidRuntime(12507): at android.app.servertransaction.TransactionExecutor.executeNonLifecycleItem(TransactionExecutor.java:174) E/AndroidRuntime(12507): at android.app.servertransaction.TransactionExecutor.executeTransactionItems(TransactionExecutor.java:109) E/AndroidRuntime(12507): at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:81) E/AndroidRuntime(12507): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2619) E/AndroidRuntime(12507): at android.os.Handler.dispatchMessage(Handler.java:107) E/AndroidRuntime(12507): at android.os.Looper.loopOnce(Looper.java:232) E/AndroidRuntime(12507): at android.os.Looper.loop(Looper.java:317) E/AndroidRuntime(12507): at android.app.ActivityThread.main(ActivityThread.java:8674) E/AndroidRuntime(12507): at java.lang.reflect.Method.invoke(Native Method) E/AndroidRuntime(12507): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:580) E/AndroidRuntime(12507): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:886) E/AndroidRuntime(12507): Caused by: java.lang.UnsatisfiedLinkError: dlopen failed: empty/missing DT_HASH/DT_GNU_HASH in "/data/app/~~qzu33mlRbUYJ1vvKicBFWw==/allen.town.focus.twitter.x-6zNIpI5vfdJLdScKpcd0vA==/lib/x86_64/libffmpegkit_abidetect.so" (new hash type from the future?) E/AndroidRuntime(12507): at java.lang.Runtime.loadLibrary0(Runtime.java:1081) E/AndroidRuntime(12507): at java.lang.Runtime.loadLibrary0(Runtime.java:1003) E/AndroidRuntime(12507): at java.lang.System.loadLibrary(System.java:1765) E/AndroidRuntime(12507): at com.arthenica.ffmpegkit.NativeLoader.loadLibrary(NativeLoader.java:48) E/AndroidRuntime(12507): ... 30 more

allentown521 avatar Jul 01 '24 08:07 allentown521

There are no real devices that are 16kb enabled, google provides emulators (android 15 with 16kb): https://source.android.com/docs/core/architecture/16kb-page-size/flash-pixel6-with-16kb-kernel

allentown521 avatar Jul 29 '24 01:07 allentown521

image

allentown521 avatar Jul 29 '24 01:07 allentown521

This shows that we may have a compatibility problem with Android 15. We must look at how this 16kb page size feature impacts us.

tanersener avatar Jul 29 '24 17:07 tanersener

hi @tanersener is the fix released yet?

maitrungduc1410 avatar Dec 16 '24 05:12 maitrungduc1410

any news on this ?

Lakston avatar Jan 03 '25 09:01 Lakston

We have decided to retire the ffmpeg-kit project and will no longer publish any new releases. Additionally, all previously released ffmpeg-kit binaries will be removed soon.

The fix for this issue has been applied to the development branch. If you need it, you will need to build the fix yourself. Thank you for your understanding and support.

tanersener avatar Jan 06 '25 17:01 tanersener

I have build ffmpeg-kit from the development branch and am still getting an exception.

This is the crash from my own build with the main branch on x86_64 emulator and the problem is inside libffmpegkit_abidetect.so java.lang.Error: FFmpegKit failed to start on brand: google, model: sdk_gphone16k_x86_64, device: emu64xa16k, api level: 35, abis: x86_64 arm64-v8a, 32bit abis: , 64bit abis: x86_64 arm64-v8a. at com.arthenica.ffmpegkit.NativeLoader.loadLibrary(NativeLoader.java:50) at com.arthenica.ffmpegkit.NativeLoader.loadFFmpegKitAbiDetect(NativeLoader.java:130) at com.arthenica.ffmpegkit.AbiDetect.<clinit>(AbiDetect.java:30) at com.arthenica.ffmpegkit.NativeLoader.loadNativeAbi(NativeLoader.java:65) at com.arthenica.ffmpegkit.NativeLoader.loadFFmpegKit(NativeLoader.java:173) at com.arthenica.ffmpegkit.FFmpegKitConfig.<clinit>(FFmpegKitConfig.java:145) at com.arthenica.ffmpegkit.FFmpegKit.executeAsync(FFmpegKit.java:207) //internal app stack at android.app.Activity.performCreate(Activity.java:9002) at android.app.Activity.performCreate(Activity.java:8980) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1526) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:4030) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4235) at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:112) at android.app.servertransaction.TransactionExecutor.executeNonLifecycleItem(TransactionExecutor.java:174) at android.app.servertransaction.TransactionExecutor.executeTransactionItems(TransactionExecutor.java:109) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:81) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2636) at android.os.Handler.dispatchMessage(Handler.java:107) at android.os.Looper.loopOnce(Looper.java:232) at android.os.Looper.loop(Looper.java:317) at android.app.ActivityThread.main(ActivityThread.java:8705) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:580) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:886) Caused by: java.lang.UnsatisfiedLinkError: dlopen failed: empty/missing DT_HASH/DT_GNU_HASH in "/data/app/~~mdLJ2ZJbaQXMj1sESqDQpg==/com.zombodroid.videogifmemepaidgplay-_Fip9h6BoDiYDXZZzblsCA==/base.apk!/lib/x86_64/libffmpegkit_abidetect.so" (new hash type from the future?) at java.lang.Runtime.loadLibrary0(Runtime.java:1081) at java.lang.Runtime.loadLibrary0(Runtime.java:1003) at java.lang.System.loadLibrary(System.java:1765) at com.arthenica.ffmpegkit.NativeLoader.loadLibrary(NativeLoader.java:48) at com.arthenica.ffmpegkit.NativeLoader.loadFFmpegKitAbiDetect(NativeLoader.java:130)  at com.arthenica.ffmpegkit.AbiDetect.<clinit>(AbiDetect.java:30)  at com.arthenica.ffmpegkit.NativeLoader.loadNativeAbi(NativeLoader.java:65)  at com.arthenica.ffmpegkit.NativeLoader.loadFFmpegKit(NativeLoader.java:173)  at com.arthenica.ffmpegkit.FFmpegKitConfig.<clinit>(FFmpegKitConfig.java:145)  at com.arthenica.ffmpegkit.FFmpegKit.executeAsync(FFmpegKit.java:207)  //internal app stack at android.app.Activity.performCreate(Activity.java:9002)  at android.app.Activity.performCreate(Activity.java:8980)  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1526)  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:4030)  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4235)  at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:112)  at android.app.servertransaction.TransactionExecutor.executeNonLifecycleItem(TransactionExecutor.java:174)  at android.app.servertransaction.TransactionExecutor.executeTransactionItems(TransactionExecutor.java:109)  at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:81)  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2636)  at android.os.Handler.dispatchMessage(Handler.java:107)  at android.os.Looper.loopOnce(Looper.java:232)  at android.os.Looper.loop(Looper.java:317)  at android.app.ActivityThread.main(ActivityThread.java:8705)  at java.lang.reflect.Method.invoke(Native Method)  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:580)  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:886) 

Then I made a build of the development branch which is suposed to be fixed and get a different problem. Now it's inside libc++_shared.so java.lang.Error: FFmpegKit failed to start on brand: google, model: sdk_gphone16k_x86_64, device: emu64xa16k, api level: 35, abis: x86_64 arm64-v8a, 32bit abis: , 64bit abis: x86_64 arm64-v8a. at com.arthenica.ffmpegkit.NativeLoader.loadLibrary(NativeLoader.java:50) at com.arthenica.ffmpegkit.NativeLoader.loadFFmpegKit(NativeLoader.java:187) at com.arthenica.ffmpegkit.FFmpegKitConfig.<clinit>(FFmpegKitConfig.java:150) at com.arthenica.ffmpegkit.FFmpegKit.executeAsync(FFmpegKit.java:207) //internal app stack at android.app.Activity.performCreate(Activity.java:9002) at android.app.Activity.performCreate(Activity.java:8980) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1526) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:4030) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4235) at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:112) at android.app.servertransaction.TransactionExecutor.executeNonLifecycleItem(TransactionExecutor.java:174) at android.app.servertransaction.TransactionExecutor.executeTransactionItems(TransactionExecutor.java:109) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:81) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2636) at android.os.Handler.dispatchMessage(Handler.java:107) at android.os.Looper.loopOnce(Looper.java:232) at android.os.Looper.loop(Looper.java:317) at android.app.ActivityThread.main(ActivityThread.java:8705) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:580) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:886) Caused by: java.lang.UnsatisfiedLinkError: dlopen failed: empty/missing DT_HASH/DT_GNU_HASH in "/data/app/~~9O-dB54EcWrF4Rj3s71TWQ==/com.zombodroid.videogifmemepaidgplay-PcPTymtiGNJSZ24fO8kaoQ==/base.apk!/lib/x86_64/libc++_shared.so" (new hash type from the future?) at java.lang.Runtime.loadLibrary0(Runtime.java:1081) at java.lang.Runtime.loadLibrary0(Runtime.java:1003) at java.lang.System.loadLibrary(System.java:1765) at com.arthenica.ffmpegkit.NativeLoader.loadLibrary(NativeLoader.java:48) at com.arthenica.ffmpegkit.NativeLoader.loadFFmpegKit(NativeLoader.java:187)  at com.arthenica.ffmpegkit.FFmpegKitConfig.<clinit>(FFmpegKitConfig.java:150)  at com.arthenica.ffmpegkit.FFmpegKit.executeAsync(FFmpegKit.java:207)  //internal app stack at android.app.Activity.performCreate(Activity.java:9002)  at android.app.Activity.performCreate(Activity.java:8980)  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1526)  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:4030)  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4235)  at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:112)  at android.app.servertransaction.TransactionExecutor.executeNonLifecycleItem(TransactionExecutor.java:174)  at android.app.servertransaction.TransactionExecutor.executeTransactionItems(TransactionExecutor.java:109)  at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:81)  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2636)  at android.os.Handler.dispatchMessage(Handler.java:107)  at android.os.Looper.loopOnce(Looper.java:232)  at android.os.Looper.loop(Looper.java:317)  at android.app.ActivityThread.main(ActivityThread.java:8705)  at java.lang.reflect.Method.invoke(Native Method)  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:580)  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:886) 

Have also tried on M3 Mac with arm emulator: java.lang.Error: FFmpegKit failed to start on brand: google, model: sdk_gphone16k_arm64, device: emu64a16k, api level: 35, abis: arm64-v8a, 32bit abis: , 64bit abis: arm64-v8a. at com.arthenica.ffmpegkit.NativeLoader.loadLibrary(NativeLoader.java:50) at com.arthenica.ffmpegkit.NativeLoader.loadFFmpegKit(NativeLoader.java:187) at com.arthenica.ffmpegkit.FFmpegKitConfig.<clinit>(FFmpegKitConfig.java:150) at com.arthenica.ffmpegkit.FFmpegKit.executeAsync(FFmpegKit.java:207) //internal app stack at android.app.Activity.performCreate(Activity.java:9002) at android.app.Activity.performCreate(Activity.java:8980) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1526) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:4030) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4235) at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:112) at android.app.servertransaction.TransactionExecutor.executeNonLifecycleItem(TransactionExecutor.java:174) at android.app.servertransaction.TransactionExecutor.executeTransactionItems(TransactionExecutor.java:109) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:81) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2636) at android.os.Handler.dispatchMessage(Handler.java:107) at android.os.Looper.loopOnce(Looper.java:232) at android.os.Looper.loop(Looper.java:317) at android.app.ActivityThread.main(ActivityThread.java:8705) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:580) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:886) Caused by: java.lang.UnsatisfiedLinkError: dlopen failed: empty/missing DT_HASH/DT_GNU_HASH in "/data/app/~~28o_wBNKpKb-kPkHpFRNMA==/com.zombodroid.videogifmemepaidgplay-LdMYbhTxsJ_6PvCEeBlLlA==/base.apk!/lib/arm64-v8a/libc++_shared.so" (new hash type from the future?) at java.lang.Runtime.loadLibrary0(Runtime.java:1081) at java.lang.Runtime.loadLibrary0(Runtime.java:1003) at java.lang.System.loadLibrary(System.java:1765) at com.arthenica.ffmpegkit.NativeLoader.loadLibrary(NativeLoader.java:48) at com.arthenica.ffmpegkit.NativeLoader.loadFFmpegKit(NativeLoader.java:187)  at com.arthenica.ffmpegkit.FFmpegKitConfig.<clinit>(FFmpegKitConfig.java:150)  at com.arthenica.ffmpegkit.FFmpegKit.executeAsync(FFmpegKit.java:207)  //internal app stack at android.app.Activity.performCreate(Activity.java:9002)  at android.app.Activity.performCreate(Activity.java:8980)  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1526)  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:4030)  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4235)  at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:112)  at android.app.servertransaction.TransactionExecutor.executeNonLifecycleItem(TransactionExecutor.java:174)  at android.app.servertransaction.TransactionExecutor.executeTransactionItems(TransactionExecutor.java:109)  at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:81)  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2636)  at android.os.Handler.dispatchMessage(Handler.java:107)  at android.os.Looper.loopOnce(Looper.java:232)  at android.os.Looper.loop(Looper.java:317)  at android.app.ActivityThread.main(ActivityThread.java:8705)  at java.lang.reflect.Method.invoke(Native Method)  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:580)  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:886) 

This are the params used to build on Linux Mint 22.1 Cinnamon ./android.sh --enable-gpl --enable-android-media-codec --enable-android-zlib \ --enable-dav1d \ --enable-fontconfig \ --enable-freetype \ --enable-fribidi \ --enable-gmp \ --enable-gnutls \ --enable-kvazaar \ --enable-lame \ --enable-libass \ --enable-libiconv \ --enable-libilbc \ --enable-libtheora \ --enable-libvorbis \ --enable-libvpx \ --enable-libwebp \ --enable-libxml2 \ --enable-opencore-amr \ --enable-opus \ --enable-shine \ --enable-snappy \ --enable-soxr \ --enable-speex \ --enable-twolame \ --enable-libvidstab \ --enable-vo-amrwbenc \ --enable-x264 \ --enable-x265 \ --enable-xvidcore \ --enable-zimg

Has anyone gotten this to work on 16KB page size Android emulators?

rokarnus avatar Feb 15 '25 17:02 rokarnus

Also getting this problem, but it will most likely never be fixed since the repo was retired!

dprevost-LMI avatar Feb 16 '25 20:02 dprevost-LMI

https://github.com/AliAkhgar/ffmpeg-kit-16KB @dprevost-LMI @maitrungduc1410 @Lakston @allentown521

AliAkhgar avatar Feb 25 '25 15:02 AliAkhgar