Buildozer构建Kivy APK出现threading SignalException_SIGSEGV报错
Buildozer构建Kivy APK时cp触发SIGSEGV错误修复方案
问题根因
报错和线程逻辑、NDK版本无关,触发点是构建流程执行/bin/cp -a复制android-sdl2源码时,Solus系统自带coreutils组件与旧版python-for-android依赖的sh命令调用库存在兼容性冲突,同系统环境多设备复现属于典型的环境兼容问题。
修复步骤
- 清理全部历史构建缓存,避免损坏的中间文件干扰构建,在项目根目录执行:
buildozer android clean rm -rf ~/.buildozer
- 二选一完成依赖修复:
- 方案1(推荐):卸载旧版buildozer、python-for-android,安装官方主线版本。PyPI推送的旧稳定版未合入Python 3.10、新Linux发行版的兼容修复:
pip uninstall -y buildozer python-for-android pip install git+https://github.com/kivy/buildozer.git@master git+https://github.com/kivy/python-for-android.git@master - 方案2:不升级构建工具,直接将依赖的
sh库降级到无bug的1.14.3版本,新版本sh库的进程等待逻辑在部分系统上会触发子进程cp段错误:pip install sh==1.14.3
- 方案1(推荐):卸载旧版buildozer、python-for-android,安装官方主线版本。PyPI推送的旧稳定版未合入Python 3.10、新Linux发行版的兼容修复:
- 修改项目根目录下的
buildozer.spec配置,暂时关闭多架构并行构建,先使用单架构验证:
多架构并行执行文件复制时,在Solus环境下触发cp段错误的概率极高,单架构构建跑通后,再按需添加armeabi-v7a等其他目标架构即可。android.archs = arm64-v8a - 以当前普通用户身份重新执行构建,全程不要加sudo权限:
buildozer android debug
注意:python-for-android对NDK版本有严格绑定要求,不要随意更换NDK版本,否则会触发其他无关构建错误。
内容的提问来源于stack exchange,提问作者badsnakecharmer
相关产品推荐
相关产品推荐

