I am getting this stability issue reported by Google Play store testing on a Wear OS device:
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.alsat/com.alsat.MainActivity}: java.lang.RuntimeException: java.util.concurrent.ExecutionException: java.lang.UnsatisfiedLinkError: dlopen failed: library "libflutter.so" not found
Exception java.lang.RuntimeException: Unable to start activity ComponentInfo{com.alsat/com.alsat.MainActivity}: java.lang.RuntimeException: java.util.concurrent.ExecutionException: java.lang.UnsatisfiedLinkError: dlopen failed: library "libflutter.so" not found
at android.app.ActivityThread.performLaunchActivity (ActivityThread.java:3449)
at android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:3601)
at android.app.servertransaction.LaunchActivityItem.execute (LaunchActivityItem.java:85)
at android.app.servertransaction.TransactionExecutor.executeCallbacks (TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute (TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage (ActivityThread.java:2066)
at android.os.Handler.dispatchMessage (Handler.java:106)
at android.os.Looper.loop (Looper.java:223)
at android.app.ActivityThread.main (ActivityThread.java:7651)
at java.lang.reflect.Method.invoke
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:592)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:947)
Caused by java.lang.RuntimeException: java.util.concurrent.ExecutionException: java.lang.UnsatisfiedLinkError: dlopen failed: library "libflutter.so" not found
at io.flutter.embedding.engine.loader.FlutterLoader.ensureInitializationComplete (FlutterLoader.java:345)
at io.flutter.embedding.engine.FlutterEngine.<init> (FlutterEngine.java:327)
at io.flutter.embedding.engine.FlutterEngine.<init> (FlutterEngine.java:207)
at io.flutter.embedding.android.FlutterActivityAndFragmentDelegate.setupFlutterEngine (FlutterActivityAndFragmentDelegate.java:272)
at io.flutter.embedding.android.FlutterActivityAndFragmentDelegate.onAttach (FlutterActivityAndFragmentDelegate.java:181)
at io.flutter.embedding.android.FlutterActivity.onCreate (FlutterActivity.java:495)
at android.app.Activity.performCreate (Activity.java:7998)
at android.app.Activity.performCreate (Activity.java:7978)
at android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1309)
at android.app.ActivityThread.performLaunchActivity (ActivityThread.java:3422)
Caused by java.util.concurrent.ExecutionException: java.lang.UnsatisfiedLinkError: dlopen failed: library "libflutter.so" not found
at java.util.concurrent.FutureTask.report (FutureTask.java:123)
at java.util.concurrent.FutureTask.get (FutureTask.java:193)
at io.flutter.embedding.engine.loader.FlutterLoader.ensureInitializationComplete (FlutterLoader.java:239)
Caused by java.lang.UnsatisfiedLinkError: dlopen failed: library "libflutter.so" not found
at java.lang.Runtime.loadLibrary0 (Runtime.java:1087)
at java.lang.Runtime.loadLibrary0 (Runtime.java:1008)
at java.lang.System.loadLibrary (System.java:1664)
at io.flutter.embedding.engine.FlutterJNI.loadLibrary (FlutterJNI.java:141)
at io.flutter.embedding.engine.loader.FlutterLoader$1.call (FlutterLoader.java:189)
at io.flutter.embedding.engine.loader.FlutterLoader$1.call (FlutterLoader.java:182)
at java.util.concurrent.FutureTask.run (FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:641)
at java.lang.Thread.run (Thread.java:923)
2
Answers
I fixed this issue by explicitly avoiding building x86 builds as flutter doesn’t support them.
To do so, add the following abiFilters to your android/app/build.gradle like so:
and the following:
}
It also helps to run flutter upgrade and flutter clean before you make your release build for the playstore.
Consider using the
abiFilters
Android Gradle Plugin API to limit the supported architectures in your APK. Doing this avoids a missinglibflutter.so
runtime crash, for example:The Flutter engine has an
x86
andx86_64
version. When using an emulator in debug Just-In-Time (JIT) mode, the Flutter module still runs correctly.Reference: https://docs.flutter.dev/add-to-app/android/project-setup