Приложение Kivy android мгновенно вылетает при открытии - PullRequest
0 голосов
/ 03 мая 2020

Я пытаюсь разработать простое приложение, которое использует API Google Translate. Приложение собирается и устанавливается правильно, но когда я открываю приложение на своем телефоне, оно просто падает, без каких-либо сообщений об ошибках.

Это мой main.py файл:

import kivy
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.core.window import Window
from kivy.graphics import Color, Rectangle

from googletrans import Translator

Window.clearcolor = (0.2, 0.2, 0.2, 1)
Window.size = (450, 800)

tr = Translator()

# class in which we are defining action on click
class RootWidget(BoxLayout):

    def translate(self, text, src, dest):
        print(text, src, dest)
        if text != "":
            self.output_text.text = tr.translate(text, src=src, dest=dest).text
    def speak(self):
        print('speaking')
    def read(self):
        print('reading')

class TranslatorApp(App):

    def build(self):
        return RootWidget()

myApp = TranslatorApp()

myApp.run()

Это мой файл transator.kv :

<RootWidget>:

    input_text:input_text
    output_text:output_text
    src_lang:src_lang
    dest_lang:dest_lang

    BoxLayout:
        orientation: 'vertical'
        spacing: 5
        padding: 5

        BoxLayout:
            orientation: 'horizontal'
            spacing: 5
            size_hint: [1, 0.1]

            Label:
                text: 'Texto a traducir'
                halign: 'left'

            Label:
                text: 'Texto traducido'
                halign: 'left'

        BoxLayout:
            orientation: 'horizontal'
            spacing: 5
            size_hint: [1, 0.9]

            TextInput:
                id: input_text
                color: [180, 180, 180]
                size_hint: [0.5, 1]
            TextInput:
                id: output_text
                text: "s"
                color: [180, 180, 180]
                size_hint: [0.5, 1]

        BoxLayout:
            orientation: 'horizontal'
            spacing: 5
            size_hint: [1, 0.2]

            Button:
                text: 'Hablar'
                color: [0, 255, 255, .67]
                background_normal: ''
                background_color: [0, 0.5, 1, .85]
                on_press: root.speak()
                size_hint: [0.5, 1]

            Button:
                text:'Traducir'
                color: [0, 255, 255, .67]
                background_normal: ''
                background_color: [1, 1, 1, 0.7]
                on_press: root.translate(input_text.text, src_lang.text, dest_lang.text)
                size_hint: [0.5, 1]

            BoxLayout:
                orientation: 'vertical'
                spacing: 5

                BoxLayout:
                    orientation: 'horizontal'
                    spacing: 5

                    Label:
                        text: 'Idioma de\norigen'
                        halign: 'left'

                    Label:
                        text: 'Idioma de\ndestino'
                        halign: 'left'

                BoxLayout:
                    orientation: 'horizontal'
                    spacing: 5

                    TextInput:
                        id: src_lang
                        text: 'es'

                    TextInput:
                        id: dest_lang
                        text: 'en'

                Button:
                    text: 'Leer traducción'
                    on_press: root.read()

Я запускаю команду buildozer android debug для сборки приложения. Я знаю, что есть android_new для новой цепочки инструментов p4a, но когда я пытаюсь это сделать, я получаю сообщение об ошибке, подобное этому:

Unknown command/target android_new

Я бы добавил buildozer.spe c файл, но stackoverflow считает, что это спам

1 Ответ

0 голосов
/ 05 мая 2020

Я чувствую себя глупо, отвечая на свой вопрос.

Я добавил googletrans в файл spe c, так что я подумал, что это не проблема. Во время одной из попыток исправить проблему я обновил модуль и обнаружил, что для googletrans есть некоторые зависимости, и все, что мне нужно было сделать, это добавить эти зависимости к требованиям тоже

...