Skip to content

Android:目标架构中移除了 x86 ​

INFO

本指南以 Flet 0.86.0 为准,内容是最准确的。后续版本可能会新增 API 或增加额外的迁移路径。

破坏性变更与废弃索引列出了为每个版本编写的指南。

概述 ​

32 位 x86 ABI 不再是受支持的 Android 目标架构。从 Flet 0.86.0 开始, flet build apk / aab 会在最开始就校验请求的架构,包含 x86 的构建——无论是通过 --arch、[tool.flet.android].target_arch 还是 [tool.flet].target_arch——会立即失败:

Invalid Android architecture(s): x86.
Supported: armeabi-v7a, arm64-v8a, x86_64.

在较早的 Flet 版本中,x86 被列为受支持的值,且不加报错地接受——但它从未为 x86 设备产出可用的应用:Flutter 没有 x86 发布(AOT)支持,并已彻底移除了该目标,而打包的 CPython 发行版也从未为 x86 构建过。该值被静默透传,实际上被忽略。

背景 ​

Flet 0.86.0 重构了 Android 构建流水线(参见 extract_packages 指南):请求的 ABI 现在会被显式映射到 Flutter 的 --target-platform 值和打包的 Python 发行版,于是 Flutter 和 Python 都不支持的 ABI 会在构建一开始就遭到拒绝,而不是静默地什么都不做。x86 也从构建模板和文档中全面移除。

迁移指南 ​

从你的架构列表中移除 x86:

toml
[tool.flet.android]
target_arch = ["arm64-v8a", "armeabi-v7a", "x86_64"]  # 去掉 "x86"

或者从命令行移除:

bash
flet build apk --arch arm64-v8a x86_64

去掉它没有任何损失——此前的构建从未分发过可用的 x86 应用。如果你是为了 Android 模拟器而针对 x86,请改用 x86_64(或 arm64-v8a)模拟器系统镜像;x86 镜像只为早已过时的 API 级别发布。

所有三个受支持的 ABI——arm64-v8a、x86_64 和 armeabi-v7a——对每个 打包的 Python 版本都可用;参见 受支持的目标架构。

时间线 ​

  • 变更于:0.86.0

参考 ​


关注我,学习大模型、大数据、Python等热门技术。