veja a saída das instruções de impressão no Android usando kivy - kivy launcher

StackOverflow https://stackoverflow.com//questions/23055696

  •  23-12-2019
  •  | 
  •  

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 ...

Foi útil?

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.

enter image description hereImagem 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/

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top