在Kivy虚拟机用Buildozer构建APK时遇sh.ErrorReturnCode_127错误求助
解决Kivy虚拟机中Buildozer打包APK时autoreconf未找到的问题
我太懂你这个头疼的问题了——在Kivy官方虚拟机里用Buildozer打包APK,结果卡在sh.ErrorReturnCode_127,核心原因就是autoreconf找不到,还碰上个不让随便改系统的虚拟机。下面给你几个针对性的解决办法,按优先级推荐:
1. 用Buildozer预构建Docker镜像(最省心方案)
Kivy虚拟机自带的环境可能依赖不全,直接让Buildozer用官方预打包的Docker镜像来干活,绕开虚拟机本地的依赖问题:
- 打开你项目里的
buildozer.spec文件,添加一行配置:[app] # 其他原有配置不动,新增下面这行 docker_image = kivy/buildozer:latest - 然后重新运行打包命令:
这样Buildozer会自动拉取包含所有必要依赖的镜像,在容器里完成打包,完全不需要碰虚拟机的系统权限。buildozer android debug
2. 绕过虚拟机权限安装依赖
如果不想用Docker,试试强行突破权限限制安装autoreconf:
- 打开终端,先切换到root用户:
sudo su - 然后执行安装命令(Kivy虚拟机基于Debian/Ubuntu,用apt没问题):
要是虚拟机的apt源访问慢,你可以先换个国内镜像源再执行上面的命令。apt-get update && apt-get install -y autoconf automake libtool
3. 手动指定autoreconf路径(适合已安装但路径未识别的情况)
有时候autoreconf其实已经装了,但Buildozer找不到它的位置,你可以在buildozer.spec里手动添加路径配置:
[app] # 其他配置保持不变 os.environ['PATH'] = os.environ['PATH'] + ':/usr/local/bin'
把上面的/usr/local/bin换成你实际找到autoreconf的路径就行,不过这个前提是你已经确认文件存在。
最后提一句,Kivy官方虚拟机本来就是给新手快速上手用的,遇到这类系统依赖问题,用Docker镜像的方式是最稳妥的,能避开一堆权限和版本冲突的坑。
内容的提问来源于stack exchange,提问作者SomeMosa
相关产品推荐
相关产品推荐

