Kivy/Python Android应用闪屏后崩溃:代码与配置修改方案
问题解决方案
一、修改main.py代码
win32com.client是Windows平台专属库,Android完全不支持,这是导致闪退的核心原因,必须处理这部分代码:
- 如果该库对应的功能是Windows独有的非核心功能,直接删除相关代码,或者用平台判断包裹,让Android环境跳过执行:
import sys if sys.platform == 'win32': import win32com.client # 原win32com相关业务逻辑 else: # Android环境下的替代逻辑或空实现 pass - 如果该库对应的是核心功能,需要替换为跨平台库:比如用
python-docx替代win32com操作Word文档,用其他跨平台方案实现原有功能。
二、调整buildozer.spec配置
优化依赖声明
- 移除
sqlite3:Python for Android默认内置sqlite3,无需单独添加到requirements。 - 降低Python版本:Python 3.11在Buildozer打包Android时兼容性较差,建议切换到更稳定的3.9或3.10版本,同时同步hostpython3版本:
requirements = python3==3.9.13, hostpython3==3.9.13, kivy, requests, kivymd, pydantic, pillow - 指定kivymd具体版本:避免版本冲突,比如添加
kivymd==1.1.1(需与当前kivy版本兼容)。
- 移除
添加必要权限
若APP用到网络请求(requests)或文件存储,需在配置中声明权限:android.permissions = INTERNET, WRITE_EXTERNAL_STORAGE, READ_EXTERNAL_STORAGE开启调试日志
为排查其他潜在闪退原因,开启日志过滤:android.logcat_filters = *:S Python:D打包后通过
adb logcat命令查看Python相关日志,定位剩余问题。
内容的提问来源于stack exchange,提问作者Safa
相关产品推荐
相关产品推荐

