主题
Android:目标架构中移除了 x86
概述
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