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

Python KivyMD应用打包APK后安卓端启动即崩溃求助

KivyMD应用打包APK后安卓加载崩溃排查方案

问题详情

Python KivyMD代码经Google Colab打包为APK后,安卓设备上应用加载完成立即崩溃,无法定位问题,已受此问题困扰4个月。

相关代码片段

from kivymd.app import MDApp
from kivymd.toast import toast
from kivymd.uix.button import MDFlatButton
from kivymd.uix.datatables import MDDataTable
from kivymd.uix.dialog import MDDialog
from kivy.lang import Builder
from datetime import date, datetime
from kivy.metrics import dp
import sqlite3

if platform == "android":
    from android.permissions import request_permissions, Permission
    request_permissions([Permission.READ_EXTERNAL_STORAGE, Permission.WRITE_EXTERNAL_STORAGE])

class CarApp(MDApp):

Buildozer依赖配置

requirements = python3,kivy==2.1.0,kivymd==1.1.1,Pillow,Kivy-Garden,numpy

排查与修复步骤

  • 修复未定义变量错误:代码中直接使用platform但未导入模块,安卓环境下会触发NameError导致崩溃,需在代码开头添加import platform。
  • 调整权限请求时机:不要在模块全局作用域执行权限请求,将权限逻辑移至CarApp的on_start方法中,避免应用初始化阶段出错:
    class CarApp(MDApp):
        def on_start(self):
            if platform == "android":
                from android.permissions import request_permissions, Permission
                request_permissions([Permission.READ_EXTERNAL_STORAGE, Permission.WRITE_EXTERNAL_STORAGE])
    
  • 添加日志定位问题:引入日志模块记录关键流程,打包后通过安卓日志工具查看崩溃细节:
    import logging
    logging.basicConfig(level=logging.INFO)
    
    class CarApp(MDApp):
        def build(self):
            logging.info("应用开始构建")
            # 后续构建逻辑
    
    打包完成后,连接设备执行adb logcat | grep python查看Python相关日志,获取崩溃具体原因。
  • 检查依赖兼容性:KivyMD 1.1.1与Kivy 2.1.0可能存在兼容问题,可尝试升级KivyMD至适配版本,或移除未使用的Kivy-Garden依赖测试打包效果。
  • 修正SQLite存储路径:安卓环境下不能使用默认路径存储SQLite数据库,需使用应用私有存储路径:
    import os
    from kivy.app import App
    
    db_path = os.path.join(App.get_running_app().user_data_dir, "car_db.db")
    conn = sqlite3.connect(db_path)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 18:03:12