Kivy android应用程序打开后立即崩溃

时间:2020-05-03 16:32:09

标签: android python-3.x kivy buildozer p4a

我正在尝试开发一个使用Google翻译的API的简单应用。该应用程序可以正确构建和安装,但是当我在手机上打开该应用程序时,它崩溃了,没有任何错误消息。

这是我的 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()

这是我的 translator.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来构建应用程序。 我知道新的p4a工具链中有android_new,但是当我尝试这样做时,却收到如下错误消息:

Unknown command/target android_new

我会添加buildozer.spec文件,但是stackoverflow认为这是垃圾邮件

1 个答案:

答案 0 :(得分:0)

我在回答自己的问题时感到很愚蠢。

我已经在规范文件中添加了googletrans,所以我认为这不是问题。在解决问题的一种尝试中,我更新了模块,并且发现googletrans有一些依赖关系,我要做的就是也将那些依赖关系添加到需求中