You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

BeeWare打包APK运行闪退 报numpy._multiarray_umath模块缺失错误

BeeWare打包APK集成airtest闪退问题排查方案

核心报错信息

E Python  :     raise ImportError(msg)
E Python  : ImportError:
E Python  :
E Python  : 重要提示:请阅读以下内容获取该问题的解决建议!
E Python  :
E Python  : numpy C扩展导入失败。该错误可由多种原因引发,通常与环境配置、NumPy安装方式异常有关。
E Python  :
E Python  : 请优先检查核对以下信息:
E Python  :
E Python  :   * 当前Python版本为:Python3.9,来源路径为""
E Python  :   * 当前NumPy版本为:"1.22.4"
E Python  :
E Python  : 原始错误信息:No module named 'numpy.core._multiarray_umath'

问题根因

该问题属于BeeWare安卓打包的典型C扩展适配问题:

  • BeeWare打包安卓APK时依赖Chaquopy提供的Python运行环境,仅支持经过安卓ABI交叉编译的Python依赖包,本地桌面环境安装的numpy是适配电脑x86/ARM架构的桌面版本,没有针对安卓系统编译,打包进APK后核心C扩展numpy.core._multiarray_umath无法被系统加载
  • 日志中Python来源路径为空,是因为打包阶段没有将numpy的对应库文件正确纳入APK的Python搜索路径,运行时遍历路径找不到对应模块
  • airtest本身是面向桌面端测试的框架,默认依赖的numpy、opencv等库均为桌面版本,未做安卓适配,直接集成会触发依赖兼容问题

排查解决步骤

  • 清理全量构建缓存:执行briefcase clean android命令删除所有历史构建产物、缓存依赖,避免旧版本错误依赖残留干扰后续构建
  • 调整numpy版本适配:卸载本地1.22.4版本numpy,在项目pyproject.toml中指定适配Chaquopy+Python3.9的numpy预编译版本(推荐1.21.x系列,该系列有完整的安卓预编译包),禁止打包时拉取PyPI源上的桌面版numpy
  • 校验依赖打包完整性:完成一次构建后解压生成的APK文件,检查lib/<目标ABI架构>目录下是否存在numpy对应的so库文件,重点确认_multiarray_umath相关so是否存在
  • 修复路径配置问题:在pyproject.toml的安卓配置段[tool.briefcase.app.<你的应用名>.android]中添加sys_path配置项,明确将numpy的内置安装路径加入运行时Python模块搜索路径
  • 替换适配移动端的airtest依赖:默认PyPI源的airtest未做安卓适配,需要替换为社区适配移动端的分支版本,同时将airtest依赖的opencv、pywin32等桌面端专属依赖全部移除,替换为Chaquopy源提供的安卓预编译版本
  • 核对ABI配置:确认打包配置中勾选的目标ABI(arm64-v8a/armeabi-v7a/x86_64)和你使用的所有C扩展库提供的ABI版本完全匹配,避免出现架构不兼容导致库加载失败

内容的提问来源于stack exchange,提问作者MR WU

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 17:45:39