我已经创建了一个程序,可以在运行时在stdoutput上打印一些指令。当我在Windows上执行应用程序时,我可以看到它们但是当我在Android设备上运行相同的应用程序时,我无法在任何地方看到打印语句的输出。
有时我们可以在与设备相同的目录中看到设备上的.kivy目录,但这些日志文件还包含kivy特定日志但忽略了打印语句输出。
任何人都可以就如何使用它提出一些建议......
答案 0 :(得分:3)
使用adb logcat获取应用程序的输出,或者使用在线提供的其中一个帮助显示日志的应用程序以及用于Python的#grep。
上述详细步骤::
在您的设备上启用开发者选项(谷歌是您的朋友)。 然后启用 USB调试。
图片取自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/