在Android上用Kivy Launcher启动应用时生成的日志

2 投票
3 回答
8661 浏览
提问于 2025-04-18 00:27

我知道我们可以用 Kivy 启动器在安卓上启动一个应用,链接是 https://play.google.com/store/apps/details?id=org.kivy.pygame

而且我也可以用同样的方法启动应用。不过我想知道,我们在哪里可以看到应用生成的日志?比如说,当我在电脑上运行 Kivy 应用时,我可以在控制台看到日志,但当我通过 Kivy 启动器启动应用时,日志在哪里呢?

如果我们看不到日志,有没有什么办法可以让我们看到呢?

3 个回答

0

你需要在 buildozer.spec 文件中指定包名,像下面这样写:

# (str) Title of your application
title = MyApp

# (str) Package name
package.name = MyAppication

# (str) Package domain (needed for android/ios packaging)
package.domain = ir.MyApp

# (list) List of service to declare
#services = NAME:ENTRYPOINT_TO_PY , NAME2:ENTRYPOINT2_TO_PY

# (str) Android entry point , default is ok for Kivy-based app
#android.entrypoint = org.kivy.android.PythonActivity

# (str) Full name including package path of the Java class that implements Android Activity
# use that parameter together with android.entrypoint to set custom Java class instead of PythonActivity
#android.activity_class_name = org.kivy.android.PythonActivity



然后你可以用下面的命令:

$ANDROID_HOME/platform-tools/adb logcat ir.MyApp:D MyApp:D ir.MyApp.MyAppication:D *:S MyAppication:D org.kivy.android.PythonActivity:D org.kivy:D python:D

注意,不管你把 entrypointpackage 命名成什么,你都应该用它们来过滤你的日志。

我得提一下,在包名后面的 D 是代表 Debug(调试)的意思。

  • V: 详细信息(优先级最低)
  • D: 调试
  • I: 信息
  • W: 警告
  • E: 错误
  • F: 致命错误
  • S: 静默(优先级最高,什么都不会打印)

如果你想清除旧的日志,可以使用 adb logcat -c

1

当你的应用程序运行时,会创建一个.kivy文件夹(如果之前没有的话)。在这个文件夹里,你会看到一个logs文件夹。里面的日志和通过“adb logcat”命令获取的日志是一样的。

3

在安卓上,kivy会把所有Python的正常终端输出打印到安卓的logcat流里。你可以通过USB连接手机到电脑,然后输入adb logcat来查看这些输出。adb是安卓开发工具包(sdk)里提供的,如果你找不到它,可以在sdk的文件夹里找到。 如果你使用buildozer,我觉得你可以通过下面的命令访问它自动下载的安卓sdk:

buildozer android logcat

你也可以通过一些在应用商店里的应用来查看adb的输出(不过可能只适用于旧版安卓,我觉得这里面有些变化)。

Kivy可能还会把日志存储为文本文件,放在SD卡的某个地方,可能是在应用的目录下(也就是在kivy启动器的kivy目录里),但我其实没怎么用过这个,使用adb要方便得多。

撰写回答