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

Kivy应用打包APK后连接树莓派本地数据库崩溃问题求助

崩溃原因定位方法
  • 优先使用adb logcat抓取运行日志:开启手机开发者模式和USB调试,连接电脑后执行命令 adb logcat -s python:D,启动APP后就能直接看到Python层的报错信息,是定位崩溃最准确的手段。如果需要看全量系统日志,去掉-s python:D参数即可,搜索crash相关关键词就能找到崩溃栈。
  • 代码内置异常捕获日志:在数据库连接逻辑外套一层try-except,将异常栈写入安卓本地可访问的存储路径(比如应用私有目录或者SD卡目录),崩溃后导出日志文件即可查看具体报错。
连接崩溃排查解决步骤
  1. 先修正buildozer.spec配置错误
    • 你的requirements字段重复声明了MySQL依赖,同时写了mysql_connector和mysql-connector-python会导致打包依赖冲突,删除前者,仅保留mysql-connector-python即可。
    • 补充必要的网络权限:安卓高版本访问局域网需要额外权限,将android.permissions修改为 android.permissions = INTERNET, ACCESS_NETWORK_STATE, ACCESS_WIFI_STATE。
    • 修正source.include_patterns的语法错误:images/*.png, font/*.ttf中逗号后的多余空格会导致字体文件匹配失败,改为images/*.png,font/*.ttf即可。
  2. 优化数据库连接逻辑
    • 不要在主线程执行同步数据库连接:Kivy主线程做耗时操作会触发ANR直接崩溃,把数据库连接逻辑放到子线程中执行,连接完成后再通过主线程回调更新UI。
    • 检查数据库连接参数:确认你代码中写的数据库IP是树莓派热点的网关地址,没有写死PC端的本地IP;同时给连接增加超时参数,比如connect(timeout=10),避免无限等待导致崩溃。
  3. 替换兼容性更好的数据库客户端
    如果修正配置后依然报错,大概率是mysql-connector-python的原生依赖在安卓上适配问题,你可以换成纯Python实现的pymysql,requirements里把MySQL相关依赖替换为pymysql,代码连接接口和mysql-connector-python几乎一致,不需要做太多修改。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 04:09:04