Kivy应用Windows可正常运行 Buildozer打包APK后安卓无法启动求助
问题解决方案
错误核心原因是你在requirements中配置的
opencv-python是PyPI提供的桌面端预编译包,内置的so库架构与Buildozer默认编译的32位安卓目标架构不匹配,导致加载失败。
- 第一步:修改
buildozer.spec的依赖配置,将opencv-python替换为opencv,python-for-android官方提供了适配安卓各架构的opencv编译配方,会自动生成对应架构的cv2.so文件:
requirements = python3,opencv,plyer,kivy==2.0.0,https://github.com/kivymd/KivyMD/archive/master.zip
- 第二步:按需调整目标编译架构,打开
buildozer.spec找到android.archs配置项:- 若需要兼容老款32位安卓设备,保持默认值
armeabi-v7a即可 - 若要适配新款64位设备,修改为
arm64-v8a - 若要打通用全架构包,修改为
armeabi-v7a arm64-v8a x86 x86_64(包体积会相应增大)
- 若需要兼容老款32位安卓设备,保持默认值
- 第三步:清理历史构建缓存,执行以下命令删除旧的错误编译产物,避免缓存干扰:
buildozer android clean # 或者直接手动删除项目根目录下的 .buildozer 文件夹
- 第四步:重新执行打包命令生成APK即可解决该错误。
额外提示:安卓11及以上版本对存储权限做了更严格的限制,你当前配置的
WRITE_EXTERNAL_STORAGE、READ_EXTERNAL_STORAGE在安卓13+系统中已经失效,后续如果遇到文件读写失败的问题,可以调整权限配置或改用应用私有沙盒目录存储图片。
内容的提问来源于stack exchange,提问作者vanvuthien
相关产品推荐
相关产品推荐

