@leshadyachkov

Как правильно упаковать .ру в .апк через бульдозер?

Здравствуйте. Помогите пожалуйста. 
При попытке упаковать данный код получаю ошибку:
            код: 

<code lang="python">

</code>import kivy
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.button import Button
from kivy.uix.textinput import TextInput

class MainApp(App):
    def build(self):
        self.operators = ["/", "*", "+", "-"]
        self.last_was_operator = None
        self.last_button = None
        main_layout = BoxLayout(orientation="vertical")
        self.solution = TextInput(
         multiline=False, readonly=True,  font_size=55
        )
        main_layout.add_widget(self.solution)
        buttons = [
            ["7", "8", "9", "/"],
            ["4", "5", "6", "*"],
            ["1", "2", "3", "-"],
            [".", "0", "C", "+"],
        ]
        for row in buttons:
            h_layout = BoxLayout()
            for label in row:
                button = Button(
                    text=label,
                    pos_hint={"center_x": 0.5, "center_y": 0.5},
                )
                button.bind(on_press=self.on_button_press)
                h_layout.add_widget(button)
            main_layout.add_widget(h_layout)

        equals_button = Button(
            text="=", pos_hint={"center_x": 0.5, "center_y": 0.5}
        )
        equals_button.bind(on_press=self.on_solution)
        main_layout.add_widget(equals_button)

        return main_layout

    def on_button_press(self, instance):
        current = self.solution.text
        button_text = instance.text

        if button_text == "C":
            # Очистка виджета с решением
            self.solution.text = ""
        else:
            if current and (
                self.last_was_operator and button_text in self.operators):
                # Не добавляйте два оператора подряд, рядом друг с другом
                return
            elif current == "" and button_text in self.operators:
                # Первый символ не может быть оператором
                return
            else:
                new_text = current + button_text
                self.solution.text = new_text
        self.last_button = button_text
        self.last_was_operator = self.last_button in self.operators

    def on_solution(self, instance):
        text = self.solution.text
        if text:
            solution = str(eval(self.solution.text))
            self.solution.text = solution


if __name__ == "__main__":
    app = MainApp()
    app.run()

и ошибка:

 C:\Users\алексей>buildozer -v android debug
Traceback (most recent call last):
  File "e:\питон\lib\runpy.py", line 193, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "e:\питон\lib\runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "E:\питон\Scripts\buildozer.exe\__main__.py", line 7, in <module>
  File "e:\питон\lib\site-packages\buildozer\scripts\client.py", line 13, in main
    Buildozer().run_command(sys.argv[1:])
  File "e:\питон\lib\site-packages\buildozer\__init__.py", line 131, in __init__
    self.config.read(filename, "utf-8")
  File "e:\питон\lib\configparser.py", line 697, in read
    self._read(fp, filename)
  File "e:\питон\lib\configparser.py", line 1082, in _read
    raise MissingSectionHeaderError(fpname, lineno, line)
configparser.MissingSectionHeaderError: File contains no section headers.
file: 'buildozer.spec', line: 1
'\ufeff[app]\n'

Что сделать что бы она не появлялась? Уже месяц не могу решения найти.
 Работаю только под ОС Виндовс, т.к. установить 
Люникс не имею возможности за неимением 
на своем ПК достаточного места
  • Вопрос задан
  • 603 просмотра
Пригласить эксперта
Ответы на вопрос 1
shurshur
@shurshur
Сисадмин, просто сисадмин...
Я в этом бульдозере ничего не понимаю, но тут дело явно тут:

'\ufeff[app]\n'

Символ \ufeff - это Unicode BOM, его надо из файла удалить, потому что указанный скрипт его не умеет правильно интерпретировать. Да, текстовый редактор этот символ не показывает, это обычное дело.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы