如何在Google Colab中配置logcat调试buildozer打包的Kivy MD APK
一、先修复代码已知错误
你提供的Python代码存在低级错误,这大概率是崩溃的首要原因:
# 原错误代码:你给OutScreen的位置添加的还是CamScreen实例 sm.add_widget(CamScreen(name= "OutScreen")) # 修正为 sm.add_widget(OutScreen(name= "OutScreen"))
另外权限申请不要放在全局位置,Android高版本要求运行时动态申请,要把权限申请移到App的on_start方法里:
class HumanDetector(MDApp): def on_start(self): from android.permissions import request_permissions, Permission request_permissions([Permission.CAMERA])
修改完重新打包后再做调试。
二、Colab配置logcat调试步骤
因为Colab是云主机环境,无法直接USB连接你的安卓手机,需要用ADB无线调试的方式连接,操作如下:
1. 准备安卓手机端
- 打开手机「开发者选项」,开启「USB调试」和「无线调试」(安卓11及以上支持,低版本需要先USB连接电脑开启adb tcpip模式)
- 确保手机和Colab云主机可以网络互通,推荐手机连接公网IP,或者用内网穿透工具做端口映射。
2. Colab端安装ADB工具
执行以下命令安装安卓平台工具:
!sudo apt-get update !sudo apt-get install -y android-tools-adb
3. 无线连接手机
将手机的公网IP和无线调试端口替换到下方命令:
!adb connect 你的手机IP:端口 # 连接成功后执行以下命令确认设备已识别 !adb devices
4. 捕获崩溃日志
首先安装你打包好的APK到手机:
!adb install ./bin/你的APK文件名.apk
然后开启logcat过滤,只显示Python相关的崩溃日志:
!adb logcat -c # 清空旧日志 !adb logcat *:S python:D # 只输出Python层的调试日志,也可以用*:E只看错误日志
现在在手机上打开崩溃的APP,Colab控制台就会输出对应的崩溃堆栈,你可以根据报错定位具体问题。
三、额外配置优化(避免打包问题)
你的spec文件可以做以下修改减少崩溃概率:
- 取消
android.logcat_filters = *:S python:D的注释,打包时就内置日志过滤规则 - requirements里指定kivymd的版本,避免版本兼容问题:
requirements = python3,kivy==2.1.0,kivymd==1.1.1,pillow,android - 安卓arch根据你手机架构选择,arm64手机选
android.arch = arm64-v8a
内容的提问来源于stack exchange,提问作者Aadhi Arun
相关产品推荐
相关产品推荐

