Вылетает kivy-приложение на андроид
Пишу мобильный переводчик на python kivy. Использую API яндекса. При компиляции на windows приложение работает правильно. При попытки запуска на android - вылетает после заставки "Loading". Как это можно исправить?
Вот мой код:
from kivy.app import App
from kivy.uix.button import Button
from kivy.uix.anchorlayout import AnchorLayout
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.textinput import TextInput
from kivy.uix.label import Label
import requests
URL_AUTH = 'https://translate.yandex.net/api/v1.5/tr.json/getLangs?'
URL_TRANSLATE = 'https://translate.yandex.net/api/v1.5/tr.json/translate'
KEY = '[API ключ]'
LANG = 'en-ru'
# --- Запрос перевода текста
auth = requests.post(URL_TRANSLATE, data={'key': KEY, 'text': 'Translate', 'lang': LANG, }).text
# --- Приложение
class translator(App):
def translate(self, instance):
# --- Запрос перевода текста
auth = requests.post(URL_TRANSLATE, data={'key': KEY, 'text': input_text.text, 'lang': LANG, }).text
print(auth)
# --- Обновление текста в Label
self.output_text.text = str(auth)
def build(self):
al = AnchorLayout()
bl = BoxLayout(orientation='vertical', size_hint=[0.9, 0.9])
btn = Button(text='Перевести', on_press=self.translate)
global input_text
input_text = TextInput(multiline=False, text='Введите текст')
self.output_text = Label(text=auth)
bl.add_widget(input_text)
bl.add_widget(self.output_text)
bl.add_widget(btn)
al.add_widget(bl)
return al
# --- Запуск приложения
if __name__ == '__main__':
translator().run()
Ответы (1 шт):
Автор решения: palamiko
→ Ссылка
Включите на телефоне режим разработчика, подключите к пк, если buildozer стоит на виртуалке, то пробросить туда usb порт, в терминале перейти в каталог с проектом, ввести buildozer android logcat, предварительно в файле buildozer.spec раскоментировать строку "#android.logcat_filters = *:S python:D", запускать приложение на телефоне смотреть лог почему падает.