使用Buildozer在Google Colab编译KivyMD应用为APK时持续报错求助
解决方案:KivyMD应用在Colab通过Buildozer编译APK的问题修复
一、彻底重置Colab Buildozer环境
仅执行buildozer android clean可能无法清除所有残留问题,建议完全重置依赖环境:
- 卸载旧组件:
!pip uninstall -y buildozer cython !apt-get remove -y buildozer !apt-get autoremove -y - 安装适配KivyMD的最新依赖:
!apt-get update !apt-get install -y git zip unzip openjdk-17-jdk python3-pip autoconf libtool pkg-config zlib1g-dev libncurses5-dev libncursesw5-dev libtinfo5 cmake libffi-dev libssl-dev !pip install --upgrade pip !pip install buildozer cython==0.29.33
二、修正buildozer.spec核心配置
针对KivyMD应用,以下配置必须严格匹配:
- 明确指定兼容的依赖版本(避免版本冲突):
requirements = python3,kivy==2.2.1,kivymd==1.1.1,pillow,requests - 配置稳定的Android编译环境版本:
android.api = 33 android.ndk = 25b android.use_aapt2 = True - 避免特殊字符,统一使用英文标识:
title = MyKivyMDApp package.name = mykivymdapp package.domain = org.example
三、执行完整构建流程
彻底删除缓存后执行构建,同时开启日志便于排查:
!rm -rf .buildozer/ # 完全清除缓存目录,比clean更彻底 !buildozer android debug deploy run --verbose
四、针对性报错修复
结合常见编译失败场景:
- 若出现
AttributeError: module 'kivy.utils' has no attribute 'deprecated':严格按照KivyMD官方文档的版本配对要求调整Kivy和KivyMD版本。 - 若出现NDK编译错误:确认
android.ndk设置为25b,该版本对KivyMD兼容性最佳。 - 若出现权限错误:执行以下命令赋予目录权限:
!chmod -R 777 .buildozer/
内容的提问来源于stack exchange,提问作者Wild Alex
相关产品推荐
相关产品推荐

