问题:

问题记录:Flutter Debug运行失败 couldn’t find libflutter.so

AS编译可以正常,编译但是一运行就提示失败:

2020-05-21 13:33:43.049 21224-21224/ FATAL EXCEPTION: main
java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "==/base.apk!/lib/armeabi-v7a, /system/lib]]] couldn’t find “libflutter.so”

但是如果是用AS的 Android项目来运行,确实可以打包成功运行的。
但是用AS打出来的包,无法使用热更新,无法快速调试Flutter代码。

解决:
旧的abi配置是:

  buildTypes {
          ndk {
                abiFilters 'armeabi-v7a'
            }
  }

修改为:

  buildTypes {
        release {
            ndk {
                abiFilters 'armeabi-v7a'
            }
        }
        debug {
            minifyEnabled false
            ndk {
                // 设置支持的 SO 库构架,注意这里要根据你的实际情况来设置
                abiFilters 'armeabi-v7a', 'arm64-v8a'//, 'armeabi', 'x86', 'x86_64', 'mips', 'mips64'
            }
        }
    }

原因

libflutter.so 这个库是Flutter的编译自带的,编译的版本是 arm64-v8a。说明Flutter是只支持64位手机的。 但是如果 设置 arm64-v8a ,那么32位的手机就不能跑(虽然32位的手机占比非常小 <2%)因此为了让32位的机器也能运行,那么可以设置:abiFilters ‘armeabi-v7a’

其他

  • build.gradle改完后,直接运行,不需要, flutter clean 即可
  • flutter clean 触发删除 Delete the build/ and .dart_tool/ directories.
  • 运行工程指定风味: flutter run --flavor alpha
  • //自定义打包: flutter build apk
  • flutter build apk --debug

参考

Flutter杂症 couldn’t find "libflutter.so

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐