Cra*_*aig 5 python android kivy buildozer
所以我花了一些时间开发一个菜谱应用程序:Github,我可以与我的 Raspberry Pi 一起使用,它工作得很好,而且我不介意使用启动器来保存原始代码。不过,我希望能够使用 buildozer 方法将 Kivy 应用程序打包为 apk:
buildozer android debug deploy run
Run Code Online (Sandbox Code Playgroud)
编译成功并且 apk 安装正常,但是应用程序在一秒钟后崩溃,之后我尝试使用 Kivy Launcher,它似乎永远无法识别我的程序,所以我继续尝试通过 Pydroid 3 运行原始代码,它有过去对 Kivy 和 KivyMD 都有效,但是尝试此导入时会崩溃,这不是我的代码的一部分:
from android.config import JAVA_NAMESPACE, JNI_NAMESPACE
Run Code Online (Sandbox Code Playgroud)
我的 buildozer.spec 文件是:
https://github.com/treencd/RecipeBook/blob/master/buildozer.spec
我最终尝试使用:
adb logcat
Run Code Online (Sandbox Code Playgroud)
然而,输出似乎没有那么有用,或者我不知道我在寻找什么。
我真的可以使用一些关于如何调试这样的应用程序的指导。
您需要 3 个步骤(省略在手机上启用调试模式)。您可以将每个步骤保存为 bash 文件,然后轻松运行脚本。假设下面的文件夹结构
project/
1.bash
2.bash
3.bash
bin/
random_name.apk
main.py
main.kv
Run Code Online (Sandbox Code Playgroud)
1)构建apk(1.bash)
#!/bin/sh
buildozer -v android debug
Run Code Online (Sandbox Code Playgroud)
2)从终端安装到手机上(2.bash)
#!/bin/sh
adb install -r bin/*.apk
Run Code Online (Sandbox Code Playgroud)
3) 运行 apk 并查看发生了什么 (3.bash)
#!/bin/sh
echo 'Please connect on transfer files mode the cellphone'
adb logcat -s "python"
Run Code Online (Sandbox Code Playgroud)
然后,当一切正常后,只需创建一个新文件(0.bash)
#!/bin/sh
bash 1.bash
bash 2.bash
bash 3.bash
Run Code Online (Sandbox Code Playgroud)
使用 adb logcat 是正确的方法。除(许多)其他内容外,这包括应用程序的所有正常日志记录输出,就像您在桌面上看到的那样。您还可以进行更高级的调试,但这通常足以调试基本问题(就像在桌面上一样,查看回溯是您经常需要的大部分信息)。
输出中与 python 相关的行都有标签“python”。有一个 adb 语法用于仅显示与特定标记匹配的输出,但我永远记不起它,只需使用 grep -adb logcat | grep python就可以了。
如果这没有返回任何运行时 python 输出,则意味着应用程序在到达该点之前崩溃了,您必须更仔细地检查 logcat。如果是这种情况,请在此处发布 logcat。
| 归档时间: |
|
| 查看次数: |
7603 次 |
| 最近记录: |