【问题标题】:How to debug a Kivy/Kivymd app for android?如何为 android 调试 Kivy/Kivymd 应用程序?
【发布时间】:2019-12-18 00:48:02
【问题描述】:

所以我花了一些时间开发一个食谱应用程序:Github 我可以与我的 Raspberry Pi 一起使用,它工作得很好,我不介意在那里使用启动器来获取原始代码。但是我希望能够使用 buildozer 方法将 Kivy 应用程序打包为 apk:

buildozer android debug deploy run

编译成功并且apk安装正常,但是应用程序在一秒钟后崩溃,之后我尝试使用似乎永远无法识别我的程序的Kivy Launcher,所以我继续尝试通过Pydroid 3运行原始代码,这在过去对 Kivy 和 KivyMD 都有效,但是在尝试此导入时它会崩溃,这不是我的代码的一部分:

from android.config import JAVA_NAMESPACE, JNI_NAMESPACE

我的 buildozer.spec 文件是:

https://github.com/treencd/RecipeBook/blob/master/buildozer.spec

我最终尝试使用:

adb logcat

但是输出似乎没有帮助,或者我不知道我在寻找什么。

我真的可以使用一些指导来调试这样的应用程序。

【问题讨论】:

标签: python android kivy buildozer


【解决方案1】:

您需要 3 个步骤(省略了在手机上启用调试模式)。 您可以将每个步骤保存为 bash 文件,然后轻松运行脚本。 假设文件夹结构如下

project/
    1.bash
    2.bash
    3.bash
    bin/
        random_name.apk
    main.py
    main.kv

1) 构建apk (1.bash)

#!/bin/sh
buildozer -v android debug

2)从终端(2.bash)安装在手机上

#!/bin/sh
adb install -r bin/*.apk

3) 运行 apk 并查看发生了什么 (3.bash)

#!/bin/sh
echo 'Please connect on transfer files mode the cellphone'
adb logcat -s "python"

然后当一切正常时,只需创建一个新文件(0.bash)

#!/bin/sh

bash 1.bash
bash 2.bash
bash 3.bash

【讨论】:

  • 这是一个超级简洁的方法,效果很好,谢谢!
【解决方案2】:

使用 adb logcat 是要走的路。在(许多)其他事物中,这包括您的应用程序的所有正常日志输出,就像您在桌面上看到的一样。您还可以进行更高级的调试,但这通常足以调试基本问题(就像在桌面上一样,查看回溯是您经常需要的大部分信息)。

输出中与 python 相关的行都带有标签“python”。有一个 adb 语法只显示匹配特定标签的输出,但我永远记不住它,只使用 grep - adb logcat | grep python 很好。

如果这没有返回任何运行时 python 输出,则意味着应用程序在到达该点之前就崩溃了,您必须更仔细地检查 logcat。如果是这种情况,请在此处发布 logcat。

【讨论】:

  • 命令adb logcat | grep python 极大地清理了输出,之后我发现了这个错误消息:12-17 20:01:56.791 25447 25481 I python : ModuleNotFoundError: No module named 'PIL' 那么我需要在构建要求中包含python pillow 包吗?
  • 如果你想导入 PIL 那么是的。如果您不尝试这样做,那么此消息很可能是 Kivy 内部的红鲱鱼。
  • 我确实需要 PIL 用于应用程序中的图像裁剪器,所以我尝试使用 pillowPILPillow 构建,只是为了确定,但 buildozer 命令每次都失败需求行,也许我应该在我的目录中包含枕头源代码?
  • 看起来Pillow 是要使用的正确配方名称。我认为此构建当前正在运行,您能否发布您得到的错误(并通过首先删除构建目录中的 .buildozer 目录从头开始构建)?
猜你喜欢
  • 2015-06-18
  • 2021-10-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-09
相关资源
最近更新 更多