veja a saída das instruções de impressão no Android usando kivy - kivy launcher
Pergunta
Eu criei um programa que imprime algumas instruções no stdoutput durante a execução.Posso vê-los quando executo o aplicativo no Windows, no entanto, quando executo o mesmo aplicativo no dispositivo Android Samsung S3, não consigo ver a saída das instruções de impressão em nenhum lugar.
Às vezes, podemos ver o diretório .kivy no dispositivo, no mesmo diretório do programa, mas esses arquivos de log também contêm logs específicos do kivy, mas ignoram as saídas da instrução de impressão.
Alguém pode dar alguns conselhos sobre como usá-lo ...
Solução
Usar adb logcat para obter a saída do seu aplicativo ou use um dos aplicativos disponíveis on-line que ajudam a exibir seus logs e usar o grep para 'Python'.
Etapas detalhadas acima::
Ative as opções do desenvolvedor no seu dispositivo(Google é seu amigo).Então habilite depuração usb.
Imagem tirada de http://androidfannetwork.com/
Em seguida, conecte seu dispositivo ao PC usando o cabo USB e digite adb devices
em seu console.Ele deve mostrar o seu dispositivo (pode haver um prompt solicitando permissões para se conectar ao computador).
Uma maneira mais simples é usar a indicação visual em um widget em vez de imprimir no console.você poderia criar funções para seu aplicativo 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)
Outras dicas
O lançador Kivy ignora print()
.Então, use logging.info()
em vez de.
Em main.py:
import logging
....
logging.info('any strings you want to output')
E os arquivos de log estão em .../kivy/your_app/.kivy/logs/