Flutter 应用程序删除 java.lang.UnsatisfiedLinkError(找不到“libflutter.so”)

Але*_*бич 12 android flutter

我已经构建了一个用 Flutter 编写的应用程序,它在我的设备上运行良好。

然而,在客户端设备上它在启动时崩溃(甚至在 Centry 启动之前)。

当连接到 ADB 时,我们得到了这个日志:

 AndroidRuntime: java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.travel.exchange-1/base.apk"],nativeLibraryDirectories=[/data/app/com.travel.exchange-1/lib/arm, /data/app/com.travel.exchange-1/base.apk!/lib/armeabi-v7a, /vendor/lib, /system/lib]]] couldn't find "libflutter.so"

 at java.lang.Runtime.loadLibrary (Runtime.java:367)
  at java.lang.System.loadLibrary (System.java:1076)
  at io.flutter.view.FlutterMain.startInitialization (FlutterMain.java:172)
  at io.flutter.view.FlutterMain.startInitialization (FlutterMain.java:149)
  at io.flutter.app.FlutterApplication.onCreate (FlutterApplication.java:22)
  at android.app.Instrumentation.callApplicationOnCreate (Instrumentation.java:1037)
  at android.app.ActivityThread.handleBindApplication (ActivityThread.java:6496)
  at android.app.ActivityThread.access$1800 (ActivityThread.java:229)
  at android.app.ActivityThread$H.handleMessage (ActivityThread.java:1887)
  at android.os.Handler.dispatchMessage (Handler.java:102)
  at android.os.Looper.loop (Looper.java:148)
  at android.app.ActivityThread.main (ActivityThread.java:7406)
  at java.lang.reflect.Method.invoke (Native Method)
  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:1230)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1120)
Run Code Online (Sandbox Code Playgroud)

我正在专门使用 arm64 进行构建(如果我尝试在 arm (32) 上运行,应用程序即使在我的设备上也会崩溃)。

flutter build apk --release --target-platform=android-arm64
Run Code Online (Sandbox Code Playgroud)

Des*_*gha 32

android\app\build.gradle 的buildTypes下添加以下代码

buildTypes {
    release {
        ndk {
            abiFilters 'armeabi-v7a','arm64-v8a','x86_64'
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

在发布模式下构建应用程序时,可以针对armeabi-v7a(ARM 32位)、arm64-v8a(ARM 64位)和x86-64(x86 64位)编译Flutter应用程序。Flutter 目前不支持针对 x86 Android 进行构建(请参阅问题 9253)。

来源: https: //docs.flutter.dev/deployment/android


小智 9

在应用程序级别 build.gradle 中应添加以下行

    defaultConfig {

        ...

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

}
Run Code Online (Sandbox Code Playgroud)