Ash*_*win 21 dart arm64 flutter apple-m1
Dart SDK 正式支持 ARM64,截至目前,2.14.2是支持 ARM64 的最新(稳定)Dart SDK。虽然它与我的 Flutter 设置中捆绑的版本相同,但它似乎在 Intel 架构上运行(活动监视器显示在 Intel 上运行的 dart 进程)。
我手动尝试替换我的 flutter 安装上的 dart SDK,而是替换为从dart.dev archiveflutter-directory/bin/cache/dart-sdk/
下载的针对 ARM64 的 Dart SDK 的 zip 文件的内容。但是尝试在 Android 模拟器(在 ARM64 上运行并且正在我的旧 Flutter 设置上运行)上运行应用程序时,会抛出以下错误:
Launching lib/main.dart on sdk gphone64 arm64 in debug mode...
lib/main.dart:1
Snapshot not compatible with the current VM configuration: the snapshot requires 'release no-code_comments
no-dwarf_stack_traces_mode lazy_async_stacks lazy_dispatchers
use_bare_instructions no-dedup_instructions
no-"asserts" "use_field_guards" "use_osr" x64-sysv no-null-safety' but the VM has 'release no-code_comments no-
dwarf_stack_traces_mode lazy_async_stacks
lazy_dispatchers use_bare_instructions no-dedup_instructions no-"asserts" "use_field_guards" "use_osr" arm64-sysv no-null-safety'
2
the Dart compiler exited unexpectedly.
Run Code Online (Sandbox Code Playgroud)
有没有其他方法可以在 M1 设备上进行完整的 ARM64 Flutter 设置?
颤振版本2.5.1
飞镖版本 2.14.2
设备:MacBook Air(M1,2020)
mig*_*uno 37
更新:从 Flutter 3.0 开始,Flutter 附带了 arm64 dart sdk,因此您只需更新到最新版本即可
\n旧答案:
\ndart-sdk
文件夹flutter-sdk-root/bin/cache
dart-sdk
为您下载的内容现在,这部分很糟糕,所以我不能真正保证它总是有效。
\n如果您现在尝试运行该应用程序,dart 编译器将崩溃。
\n使用flutter run -v
(启用详细模式,以获取更多日志)并通过几次谷歌查找,我能够找出问题是由名为 的快照文件引起的,frontend_server.dart.snapshot
该文件位于 sdk 中的两个位置:
flutter/bin/cache/dart-sdk/bin/snapshots
- 针对arm的新快照,您刚刚将其粘贴到此处flutter/bin/cache/artifacts/engine/darwin-x64
- 旧快照仍然适用x64
frontend_server.dart.snapshot
到第二个路径,替换旧文件我运行了一个非常随意的测试,让我感觉一下 hello world 应用程序的编译时间是否有任何改进。我所说的“随意”是指我没有关闭任何后台程序。
\n测试过程如下:
\n初步结果非常有希望:
\n$ dart --version\nDart SDK version: 2.15.0-116.0.dev (dev) (Thu Sep 16 09:47:01 2021 -0700) on "macos_arm64"\n\n$ flutter --version\nFlutter 2.6.0-11.0.pre \xe2\x80\xa2 channel dev \xe2\x80\xa2 https://github.com/flutter/flutter.git\nFramework \xe2\x80\xa2 revision 4b330ddbed (5 weeks ago) \xe2\x80\xa2 2021-09-16 17:29:58 -0700\nEngine \xe2\x80\xa2 revision 5b81c6d615\nTools \xe2\x80\xa2 Dart 2.15.0 (build 2.15.0-116.0.dev)\n\n
Run Code Online (Sandbox Code Playgroud)\n\n
更新:从Flutter 3.0.0开始,默认使用arm64 dart sdk。如有必要,修补程序仍可用于旧版本。
使用此处的其他答案,我创建了flutter_m1_patcher。
它获取 Flutter 捆绑的 Dart SDK 的版本并将其替换为 arm64 版本。
归档时间: |
|
查看次数: |
7828 次 |
最近记录: |