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

Kivy+Buildozer打包PY为APK报OpenCV缺失config.py错误

问题原因

你本地虚拟环境中找到的config.py是Ubuntu x86架构下的OpenCV配置文件,buildozer打包时默认不会将PyPI源安装的桌面版OpenCV的安卓兼容组件、对应架构的配置文件打包进APK。安卓设备运行时OpenCV加载器无法在APK内部找到适配安卓架构的config.py文件,就会抛出该导入错误,和你本地PC端的文件是否存在没有关系。

修复步骤
  • 先卸载本地虚拟环境中所有桌面版OpenCV包,避免打包时错误引用x86架构的二进制文件:
    pip uninstall -y opencv-python opencv-contrib-python
    
  • 修改项目根目录下的buildozer.spec配置:
    1. 找到requirements配置项,替换为以下内容,确保依赖版本和你的开发环境对齐:
      requirements = python3==3.10, kivy==2.1.0, numpy, opencv-contrib-python==4.6.0.66
      
      该配置会触发python-for-android拉取适配安卓架构的OpenCV编译版本,自动生成对应安卓环境的config.py并配置正确的库路径。
    2. 找到android.permissions配置项,添加相机调用必需的权限:
      android.permissions = CAMERA, WRITE_EXTERNAL_STORAGE, READ_EXTERNAL_STORAGE
      
    3. 找到android.archs配置项,设置为通用架构兼容绝大多数测试设备:
      android.archs = arm64-v8a, armeabi-v7a
      
  • 清理之前的打包缓存,避免旧的错误构建残留影响新包:
    buildozer android clean
    
  • 卸载安卓测试设备上之前安装的闪退旧版APK,重新执行打包命令:
    buildozer -v android debug
    
    打包过程保持网络通畅,构建完成后将新生成的APK安装到设备即可正常运行。
避坑提示
  • 不要手动将本地Ubuntu环境下找到的config.py复制到项目目录强行打包,该文件内BINARIES_PATHS配置的是你本地PC的库存放路径,安卓系统中不存在对应目录,强行打入会触发后续so库加载失败的错误。
  • 4.6.0.66版本的OpenCV contrib安卓包已默认集成ArUco模块,不需要额外添加模块依赖。
  • 如果重新打包后仍有权限相关报错,确认你的Kivy相机调用逻辑适配了安卓运行时权限申请逻辑,不要直接硬调相机接口。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 03:09:39