将Kivy项目导出为APK时遭遇pyjnius编译错误求助
Kivy应用Buildozer打包APK编译错误解决
问题概况
在Debian 12、Ubuntu 20.04系统下,用Python 3.8.10 + Buildozer 1.5.0执行buildozer -v android debug打包Kivy应用时,先后出现两个关键错误:
- 初始报错:找不到
jnius/jnius.c文件 - Cython处理后:出现
Py_REFCNT表达式不可赋值等12个编译错误
可行解决步骤
1. 指定兼容的jnius版本
Buildozer 1.5.0默认依赖的jnius版本和Python 3.8存在兼容性问题,直接在buildozer.spec文件里锁定适配版本:
requirements = python3,kivy,jnius==1.4.2
2. 匹配Cython版本
Python 3.8对Cython版本有特定要求,先在本地环境更新,同时在spec中指定:
pip install cython==0.29.36
然后修改buildozer.spec的requirements:
requirements = python3,kivy,jnius==1.4.2,cython==0.29.36
3. 清理缓存后重新构建
之前的构建缓存可能残留错误文件,执行清理命令后重新打包:
buildozer android clean buildozer -v android debug
4. 补全系统编译依赖
确保Debian/Ubuntu系统安装了所有必要的编译工具:
sudo apt-get update sudo apt-get install -y build-essential git python3 python3-pip python3-dev openjdk-11-jdk unzip zlib1g-dev
内容的提问来源于stack exchange,提问作者A.b.Ramazani
相关产品推荐
相关产品推荐

