Flutter 发布包或 APK 启动时崩溃,dlopen 失败:找不到库“libflutter.so”

问题描述 投票:0回答:5

我的 debuggin apk 正在正常工作,但在模拟器 Pixel 3a api 30 中,版本在启动时崩溃

这是我在 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)
android flutter lib
5个回答
16
投票

尝试更改 build.gradle 中的 abiFilters 位于 android/app/build

请参阅 abiFilters 的文档。

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

仅构建 abiFilters 中指定的平台。如果您要在 x86 计算机上构建本地模拟器,则需要

'x86', 'x86_64'

常见问题:排除

'x86', 'x86_64'
以防止您的应用程序可供 Play 商店中的 x86 Android 设备或机器人使用,然后无法在本地模拟器上运行您的应用程序,而物理连接的 Android 设备则可以正常构建。


2
投票

如果你想生成appbundle,只需将其添加到:

flutter/android/app/build.gradle
defaultConfig {
    applicationId "com.example"
    minSdkVersion 21
    multiDexEnabled true
    targetSdkVersion 30
}

signingConfigs {
    release {
        keyAlias [whatever]
        keyPassword [whatever]
    }
    debug {
        [whatever]
    }
}

buildTypes {
    release {
        signingConfig signingConfigs.release
        ndk {
            abiFilters 'arm64-v8a', 'armeabi-v7a', 'x86_64'
        }
    }
}

内部 buildTypes -> release:

ndk {
 abiFilters 'arm64-v8a', 'armeabi-v7a', 'x86_64'
}

0
投票

我尝试在物理 Android 设备中调试时遇到此错误,只需删除 android/

中的 .gradle 文件夹

-1
投票

在 android/app/build.gradle 中添加 ndk abiFilters

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"
        }
    }

-7
投票

就我而言,我通过从命令行运行“颤振升级”解决了这个问题。

© www.soinside.com 2019 - 2024. All rights reserved.