引自免费微信小程序:皆我百晓生
在您的问题中,Flutter项目打包的64位apk安装在真机上闪退,并提示“libflutter.so not found”,同时您发现64位包里缺少很多so文件。这表明在构建64位版本的应用时,可能未正确包含或链接必要的原生库。
以下是针对此问题的一系列排查和解决步骤:
- 检查Gradle配置:
确保您在
android/app/build.gradle中的defaultConfig部分指定了正确的abiFilters以包含64位架构:
android {
defaultConfig {
...
ndk {
abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64' // 添加对64位的支持
}
}
}
- 清理并重新构建项目:
执行以下命令来清理缓存并重新生成所有必要的资源和库:
flutter clean
flutter build apk --split-per-abi
-
检查Flutter SDK版本:
确保您的Flutter SDK是最新版或者至少支持64位编译的版本。您可以运行flutter doctor检查更新并升级到最新版。
-
检查第三方依赖:
如果您的项目中有使用到第三方插件,确认这些插件也提供了对应的64位so库。若缺失,需要找到支持64位架构版本的插件替换或联系插件作者获取更新。
-
手动检查APK内容:
将生成的64位apk(通常为build/app/outputs/apk/release/app-arm64-v8a-release.apk)解压后查看lib/arm64-v8a目录下是否存在libflutter.so以及其他必要的so文件。
如果以上步骤都未能解决问题,请尝试完全卸载旧应用并重启设备后再进行安装,有时残留的旧安装可能会干扰新应用的加载。此外,可以考虑创建一个新的 Flutter 项目,仅集成基础功能然后尝试打包64位apk测试,排除其他可能引入问题的因素。