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

使用Kivy、Buildozer将Python转APK遇OpenCV依赖问题求助

解决Buildozer打包OpenCV+Aruco安卓应用的问题

错误原因分析

  • 用opencv-python作为依赖:这个包是针对桌面平台预编译的,安卓环境下缺少对应的配置文件,因此触发ImportError。
  • 用opencv作为依赖:未配置兼容的numpy版本、NDK版本,导致OpenCV编译失败,最终出现ModuleNotFoundError。

解决方案

1. 修正Buildozer.spec配置

修改buildozer.spec中的关键参数:

# 依赖配置,指定兼容的numpy版本
requirements = python3,kivy,numpy==1.21.6,opencv
# 安卓权限(必须包含相机权限,Aruco需要调用摄像头)
android.permissions = CAMERA,WRITE_EXTERNAL_STORAGE
# 指定兼容的NDK版本,避免编译冲突
android.ndk = 25b
# 指定安卓API版本
android.api = 33

2. 代码适配调整

  • 调整Aruco的导入方式,避免模块路径问题:
    # 替换 import cv2.aruco
    from cv2 import aruco
    
  • 确保代码中文件路径使用安卓沙箱路径,比如:
    from kivy.app import App
    import os
    # 获取应用可读写的沙箱目录
    data_dir = App.get_running_app().user_data_dir
    # 替换硬编码的本地路径
    target_path = os.path.join(data_dir, "your_file.xml")
    

3. 清理缓存后重新打包

执行以下命令彻底清理旧编译缓存,再重新打包:

buildozer android clean
buildozer android debug deploy run

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 09:05:28