使用kivy-kivy启动器查看android上的print语句输出

时间:2014-04-14 08:45:11

标签: android python kivy

我已经创建了一个程序,可以在运行时在stdoutput上打印一些指令。当我在Windows上执行应用程序时,我可以看到它们但是当我在Android设备上运行相同的应用程序时,我无法在任何地方看到打印语句的输出。

有时我们可以在与设备相同的目录中看到设备上的.kivy目录,但这些日志文件还包含kivy特定日志但忽略了打印语句输出。

任何人都可以就如何使用它提出一些建议......

2 个答案:

答案 0 :(得分:3)

使用adb logcat获取应用程序的输出,或者使用在线提供的其中一个帮助显示日志的应用程序以及用于Python的#grep。

上述详细步骤::

在您的设备上启用开发者选项(谷歌是您的朋友)。 然后启用 USB调试

enter image description here 图片取自http://androidfannetwork.com/

然后使用USB线将设备连接到电脑,然后在控制台中输入adb devices。 它应该显示您的设备(可能有提示要求您连接到计算机的权限。)

一种更简单的方法是在窗口小部件上使用可视指示,而不是在控制台上打印。 您可以为应用bubprint

创建功能
from kivy.core.window import Window
from kivy.clock import Clock
from kivy.factory import Factory
from kivy.lang import Builder

Builder.load_string('''
<InfoBubble@Bubble>
    # declare our message StringProperty
    message: 'empty message'
    # let the bubble be of 200 device pixels
    # and expand as necessary on the height
    # depending on the message + 20 dp of padding.
    size_hint: None, None
    show_arrow: False
    pos_hint: {'top': 1, 'right': 1}
    size: dp(200), lbl.texture_size[1] + dp(20)
    Label:
        id: lbl
        text: root.message
        # constraint the text to be displayed within
        # the bubble width and have it be unrestricted
        # on the height.
        text_size: root.width - dp(20), None
''')

def bubbprint(self, message):
    message = repr(message)
    if not self.info_bubble:
        self.info_bubble = Factory.InfoBubble()
    self.info_bubble.message = message

    # Check if bubble is not already on screen
    if not self.info_bubble.parent:
        Window.add_widget(self.info_bubble)

    # Remove bubble after 2 secs
    Clock.schedule_once(lambda dt:
        Window.remove_widget(self.info_bubble), 2)

答案 1 :(得分:0)

Kivy发射器忽略print()。因此,请改用logging.info()

在main.py中:

import logging
....
    logging.info('any strings you want to output')

日志文件位于.../kivy/your_app/.kivy/logs/