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

Ubuntu环境下使用Buildozer打包Kivy应用为APK失败如何解决?

Buildozer打包Kivy应用失败原因及解决方案

失败原因排查

当前报错属于python-for-android工具链执行中断,结合给出的代码和运行环境,常见原因如下:

  • kv文件未纳入打包配置:main.py中加载了simpleForm.kv文件,但默认buildozer配置不会自动识别kv后缀的资源文件,导致打包时资源缺失触发编译中断
  • WSL跨分区路径问题:项目存放在/mnt/c(Windows NTFS分区挂载目录)下,WSL对该分区的文件权限、软链接支持存在缺陷,极易导致编译过程报错
  • 依赖版本不兼容:配置的kivymd==0.104.2.dev0开发版本与Kivy 2.0.0、NDK r19c的兼容性没有保障,易触发依赖编译失败
  • 系统前置依赖缺失:Ubuntu环境未安装完整的编译依赖包,导致工具链执行中断

对应解决步骤

1. 修正buildozer.spec配置

  • 找到配置文件中的source.include_exts字段,添加kv后缀,修改后参考:
    source.include_exts = py,png,jpg,kv,atlas
    
  • 临时移除不稳定的开发版依赖测试,将requirements字段修改为:
    requirements = python3,kivy==2.0.0,pillow
    
    基础打包成功后再逐步添加kivymd等其他依赖

2. 解决WSL路径问题

将整个项目文件夹移动到WSL本地文件系统目录下执行操作,例如:

mv /mnt/c/TEMPKIVY ~/kivy_test/
cd ~/kivy_test/

3. 安装完整系统依赖

执行以下命令安装编译所需的全部前置依赖:

sudo apt update
sudo apt install -y openjdk-8-jdk git zlib1g-dev build-essential libssl-dev libffi-dev python3-dev autoconf automake libtool pkg-config
# 配置默认JDK为1.8版本
sudo update-alternatives --config java
sudo update-alternatives --config javac

4. 清理缓存重新打包

删除原有编译缓存,重新执行打包命令:

rm -rf .buildozer
buildozer -v android debug

5. 更精准的错误排查

如果以上操作仍然失败,修改buildozer.spec中log_level = 2后重新打包,查看完整日志定位具体错误点。

注意:main.py中设置的Window.size = (800,230)仅在桌面端生效,安卓端会自动适配设备屏幕,不会影响打包结果。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 01:15:04