簡體   English   中英

如何調試適用於 android 的 Kivy/Kivymd 應用程序?

[英]How to debug a Kivy/Kivymd app for android?

所以我花了一些時間開發了一個食譜應用程序: 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

但是輸出似乎沒有幫助,或者我不知道我在尋找什么。

我真的可以使用一些關於如何調試這樣的應用程序的指導。

使用 adb logcat 是要走的路。 在(許多)其他事情中,這包括您的應用程序的所有正常日志輸出,就像您在桌面上看到的一樣。 您還可以進行更高級的調試,但這通常足以調試基本問題(就像在桌面上一樣,查看回溯是您經常需要的大部分信息)。

輸出中與 python 相關的行都帶有標簽“python”。 有一個 adb 語法只顯示與特定標簽匹配的輸出,但我永遠記不住它,只使用 grep - adb logcat | grep python adb logcat | grep python很好。

如果這沒有返回任何運行時 python 輸出,則意味着應用程序在到達該點之前崩潰了,您必須更仔細地檢查 logcat。 如果是這種情況,請在此處發布 logcat。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM