如何为Android调试Kivy / Kivymd应用程序?

时间:2019-12-18 00:48:02

标签: python android kivy buildozer

因此,我花了一些时间来开发食谱应用程序: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

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

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

2 个答案:

答案 0 :(得分:1)

使用adb logcat是解决方法。除其他事项外,这包括应用程序的所有常规日志记录输出,就像在桌面上看到的一样。您还可以进行更高级的调试,但这通常足以调试基本问题(就像在桌面上一样,看到回溯是您经常需要的大多数信息)。

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

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

答案 1 :(得分:0)

您需要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