Flutter Release bundle or APK Crash on start, dlopen failed: library "libflutter.so" not found

Viewed 4637

my debuggin apk is working perfacet, but the release crashing on start, in emulator Pixel 3a api 30

here is my error log in android studio

2021-02-25 10:20:52.264 6454-6454/? E/FlutterLoader: Flutter initialization failed.
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:178)
    at io.flutter.view.FlutterMain.ensureInitializationComplete(FlutterMain.java:78)
    at io.flutter.app.FlutterActivityDelegate.onCreate(FlutterActivityDelegate.java:145)
    at io.flutter.app.FlutterActivity.onCreate(FlutterActivity.java:91)
    at com.shoaibanwar.saray.MainActivity.onCreate(MainActivity.kt:9)
    at android.app.Activity.performCreate(Activity.java:8000)
    at android.app.Activity.performCreate(Activity.java:7984)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1309)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3422)
    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:7656)
    at java.lang.reflect.Method.invoke(Native Method)
    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.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.loader.FlutterLoader$1.call(FlutterLoader.java:129)
    at io.flutter.embedding.engine.loader.FlutterLoader$1.call(FlutterLoader.java:123)
    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)
3 Answers

Try changing the abiFilters in build.gradle at android/app/build

See documentation for abiFilters.

defaultConfig { 
    ndk { 
        abiFilters 'x86', 'x86_64', 'armeabi', 'armeabi-v7a', 'mips', 'mips64', 'arm64-v8a' 
    }
}

Only platforms specified in the abiFilters are built. If you are building for a local emulator on an x86 computer, you will need 'x86', 'x86_64'.

Common issue: excluding 'x86', 'x86_64' to prevent your app from being available to x86 android devices in the Play Store or bots, then being unable to run your app on your local emulator, while a physically connected android device builds fine.

add ndk abiFilters in android/app/build.gradle

defaultConfig {
        applicationId "com.devsig.cloudauthenticator"
        minSdkVersion 21
        targetSdk 32
        versionCode 4
        versionName "1.0.4"
        multiDexEnabled true
        signingConfig signingConfigs.debug
        ndk {
            abiFilters "armeabi", "x86", "armeabi-v7a", "x86_64", "mips",
                    "mips64", "arm64-v8a"
        }
    }

In my case I solved this by running 'flutter upgrade' from the command line.

Related