Android 原生项目集成Flutter,运行打开FlutterActivity时闪退

发布于 2022-09-12 22:09:36 字数 1046 浏览 14 评论 0

按照官方手动集成步骤在原生项目中集成Flutter,编译正常,但是在打开 FlutterActivity 时 App 闪退。

Logcat日志如下:

E/flutter: [ERROR:flutter/runtime/dart_vm_data.cc(18)] VM snapshot invalid and could not be inferred from settings.
E/flutter: [ERROR:flutter/runtime/dart_vm.cc(250)] Could not setup VM data to bootstrap the VM from.
E/flutter: [ERROR:flutter/runtime/dart_vm_lifecycle.cc(84)] Could not create Dart VM instance.
A/flutter: [FATAL:flutter/shell/common/shell.cc(274)] Check failed: vm. Must be able to initialize the VM.
    

请问这是怎么一回事,应该如何解决?

> flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel dev, 1.26.0-8.0.pre, on Mac OS X 10.15.7 19H2 darwin-x64,
    locale zh-Hans-CN)
[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
[✓] Xcode - develop for iOS and macOS (Xcode 12.3)
[✓] Android Studio (version 4.1)
[✓] IntelliJ IDEA Ultimate Edition (version 2018.3.2)
[✓] VS Code (version 1.52.1)
[✓] Connected device (1 available)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

噩梦成真你也成魔 2022-09-19 22:09:36

我已找到解决该问题的方法:原生Android项目集成Flutter Module踩坑记录

解决思路:
首先参考Flutter与Android混合编码配置笔记

可见该问题出现在 多变体多构建模式 项目中,上面的解决方案都不能正确解决问题。

参考这篇问答Flutter - Support build of multiple BuildTypes,我们可以推断出 Flutter 当前是不支持多构建模式的,仅支持的三种构建模式,分别是debugprofilerelease

但是我们的原生Android 项目是基于多构建模式实现的多衍生版本,显然从多构建模式重构到只使用变体实现多衍生需要做大量的工作。

我们可以是用一种取巧的方式来实现在当前原生项目中集成Flutter,那就是直接修改 flutter.gradle 文件,手动的添加我们当前项目使用的 buildtypes 即可。

搜索 project.android.buildTypes 定位到代码块,在代码块内添加自己的 buildtypes,在调试阶段使用 initWith debug,在最终出品时修改为 initWith release

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文