Flutter abiFilters 不会为所有架构生成 libflutter.so

Sam*_*Sam 5 android abi flutter

在我的 Flutter 应用程序中,我尝试生成适用于所有设备(无论是 32 位还是 64 位)的 apk。

为此,我将以下行放入我的build.gradle文件中。但看起来它没有为所有架构生成libflutter.so 。

    android {
       compileSdkVersion 27
       defaultConfig {
           appId "com.google.example.64bit"
           minSdkVersion 15
           targetSdkVersion 28
           versionCode 1
           versionName "1.0"
           ndk.abiFilters 'armeabi-v7a','arm64-v8a','x86','x86_64'
Run Code Online (Sandbox Code Playgroud)

如下图所示,libflutter.so仅存在于armeabi-v7a中,所有其他文件夹都缺少它。当我在 Google Play 上发布应用程序时,此问题会导致我的应用程序在启动时崩溃。

  Exceptions
    java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/abc.xyz.idar-1/base.apk"],nativeLibraryDirectories=[/data/app/abc.xyz.idar-1/lib/arm64, /data/app/abc.xyz.idar-1/base.apk!/lib/arm64-v8a, /system/lib64, /vendor/lib64, /system/vendor/lib64, /product/lib64]]] couldn't find "libflutter.so"
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我正在使用flutter build apk命令来生成 apk。

Mar*_*yns 0

像这样改变你的 build.gradle

android {
   compileSdkVersion 27
   defaultConfig {
      // Remove ndk.abiFilters from here
   }

   buildTypes {
       release {
           ndk.abiFilters 'armeabi-v7a'
       }
   }
Run Code Online (Sandbox Code Playgroud)

这就是我在 Google Play 上发布的内容,到目前为止我还没有遇到任何问题。