Проблема с компиляцией kivypython в apk на ubuntu
При компиляции в apk начинается загрузка данных sqlite https://www.sqlite.org/2021/sqlite-amalgamation-3350500.zip И она останавливается на 0,67%. В прошлом компилировал python файлы в apk проблем не было.
Код прилагаю.
from kivy.app import App
from kivy.uix.button import Button
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.uix.label import Label
from kivy.uix.textinput import TextInput
from kivy.uix.boxlayout import BoxLayout
from kivy.core.window import Window
from kivy.config import Config
import sys
class Algoritm(App):
def __init__(self, **kwargs):
super().__init__(**kwargs)
self.voltage_prompt = "Измерь напряжение путевого реле на измерительной панели:"
self.current_question = self.voltage_prompt
self.message = "Введено неверное значение. Пожалуйста, повторите ввод."
self.valid_options = ["да", "нет", "не меняется", "растет", "близко к нулю", "нормальное", "больше", "меньше"]
self.ui_elements()
def ui_elements(self):
self.my_label = Label(text=self.current_question, text_size=(Window.width * 0.8, None), size_hint_y=5, font_size = 20,
halign='center', valign='middle')
self.my_label.bind(texture_size=self.my_label.setter('size'))
self.my_input = TextInput(multiline=False)
self.my_button = Button(text="Ввод")
self.my_button.bind(on_press=self.button_pressed)
# Кнопка "Выход"
self.exit_button = Button(text="Выход")
self.exit_button.bind(on_press=self.exit_app)
def get_valid_input(self, user_input):
user_input = user_input.lower()
if user_input in self.valid_options:
return user_input
else:
self.show_error_and_repeat()
return None
def get_float_input(self, user_input):
try:
user_input = float(user_input)
return user_input
except ValueError:
self.show_error_and_repeat()
return None
def button_pressed(self, instance):
user_input = self.my_input.text
self.my_input.text = ''
if self.current_question.startswith(self.message):
self.current_question = self.current_question[len(self.message) + 1:]
if self.current_question == self.voltage_prompt:
voltage = self.get_float_input(user_input)
if voltage is not None:
self.process_voltage(voltage)
else:
valid_input = self.get_valid_input(user_input)
if valid_input:
self.process_answer(valid_input)
def process_voltage(self, voltage):
if 13 <= voltage <= 16:
self.current_question = "Нормальное напряжение!"
self.update_label()
elif voltage < 13:
self.current_question = "\nПроверь напряжение на высокой стороне релейного трансформатора.\nНапряжение больше чем на посту? Введи 'да' или 'нет':"
self.update_label()
elif voltage > 16:
self.current_question = "\nПроверь состояние путевого реле. Реле под током?\nЯкорь реле притягивается? Введи 'да' или 'нет':"
self.update_label()
else:
self.show_error_and_repeat()
def process_answer(self, answer):
if self.current_question == "\nПроверь напряжение на высокой стороне релейного трансформатора.\nНапряжение больше чем на посту? Введи 'да' или 'нет':":
if answer == "да":
self.current_question = "\nОбрыв или сообщение в релейном кабеле."
self.update_label()
elif answer == "нет":
self.current_question = "\nПроверить U рельс при отключении одно троса релейного конца\nПри отключении одного троса релейного конца U рельс не меняется или растет. Введи 'не меняется' или 'растет':"
self.update_label()
elif self.current_question == "\nПроверить U рельс при отключении одно троса релейного конца\nПри отключении одного троса релейного конца U рельс не меняется или растет. Введи 'не меняется' или 'растет':":
if answer == "не меняется":
self.current_question = "\nПроверить U на высокой стороне питающего трансформатора\nU на высокой стороне питающего трансформатора близко к нулю или нормальное. Введи 'близко к нулю' или 'нормальное':"
self.update_label()
elif answer == "растет":
self.current_question = "\nПлохой контакт в рельсовой линии"
self.update_label()
elif self.current_question == "\nПроверить U на высокой стороне питающего трансформатора\nU на высокой стороне питающего трансформатора близко к нулю или нормальное. Введи 'близко к нулю' или 'нормальное':":
if answer == "близко к нулю":
self.current_question = "\nОбрыв питающего кабеля между коробкой и групповой муфтой"
self.update_label()
elif answer == "нормальное":
self.current_question = "\nПроверить U на низкой стороне питающего трансформатора\nU на низкой стороне ПТ нормальное или близко к нулю? Введи 'близко к нулю' или 'нормальное':"
self.update_label()
elif self.current_question == "\nПроверить U на низкой стороне питающего трансформатора\nU на низкой стороне ПТ нормальное или близко к нулю? Введи 'близко к нулю' или 'нормальное':":
if answer == "близко к нулю":
self.current_question = "\nНеисправен путевой трансформатор"
self.update_label()
elif answer == "нормальное":
self.current_question = "\nПроверить напряжение на путевом реостате\nНапряжение на путевом реостате в ПК меньше или больше нормы? Введи 'больше' или 'меньше':"
self.update_label()
elif self.current_question == "\nПроверить напряжение на путевом реостате\nНапряжение на путевом реостате в ПК меньше или больше нормы? Введи 'больше' или 'меньше':":
if answer == "меньше":
self.current_question = "\nОбрыв в рельсовой линии"
self.update_label()
elif answer == "больше":
self.current_question = "\nНарушение изоляции в рельсовой линии"
self.update_label()
elif self.current_question == "\nПроверь состояние путевого реле. Реле под током?\nЯкорь реле притягивается? Введи 'да' или 'нет':":
if answer == "да":
self.current_question = "\nНеисправен повторитель путевого реле или обрыв в его цепи"
self.update_label()
elif answer == "нет":
self.current_question = "\nПошевели реле в штепсельной розетке\nЯкорь реле притягивается? Введи'да' или 'нет':"
self.update_label()
elif self.current_question == "\nПошевели реле в штепсельной розетке\nЯкорь реле притягивается? Введи'да' или 'нет':":
if answer == "да":
self.current_question = "\nПлохой контакт в штепсельной розетке"
self.update_label()
elif answer == "нет":
self.current_question = "\nИзмерь напряжение на обмотках реле\nНапряжение на обмотках больше или меньше напряжения притяжения? Введи 'больше' или 'меньше':"
self.update_label()
elif self.current_question == "\nИзмерь напряжение на обмотках реле\nНапряжение на обмотках больше или меньше напряжения притяжения? Введи 'больше' или 'меньше':":
if answer == "больше":
self.current_question = "\nНеисправно путевое реле"
self.update_label()
elif answer == "меньше":
self.current_question = "\nОбрыв в монтаже между кабельными клеммами и обмоткой реле"
self.update_label()
def show_error_and_repeat(self):
self.current_question = self.message + "\n" + self.current_question
self.update_label()
def update_label(self):
self.my_label.text = self.current_question
self.my_label.texture_update()
self.my_label.text_size = (Window.width * 0.9, None)
self.my_label.size = self.my_label.texture_size
def exit_app(self, instance):
"""Завершает приложение."""
App.get_running_app().stop()
sys.exit()
def build(self):
self.title = "Алгоритм"
Window.clearcolor = (0, 0, 0, 0)
box = BoxLayout(orientation="vertical")
box.add_widget(self.my_label)
box.add_widget(self.my_input)
box.add_widget(self.my_button)
box.add_widget(self.exit_button) # Добавляем кнопку "Выход"
return box
if __name__ == "__main__":
Algoritm().run()