Я делаю свое первое приложение с Флетом на Python. Проблема, с которой я сталкиваюсь, заключается в том, что когда я создаю приложение как APK, внутри оно просто пустое. Ни ошибки, ни сбоя. Самое странное, что при тестировании приложение работает совершенно нормально. Я видел в Интернете, что у некоторых людей возникла такая же проблема, но их решения мне не помогли.
Я создаю приложение с помощью flet build apk -vv
Немного о приложении:
Я сделал приложение для себя и выдуманного языка моих друзей.
Некоторые части кода написаны на русском языке.
Он импортирует только запросы и сам флетирует.
Он имеет запросы GET и PUT.
Он имеет несколько элементов пользовательского интерфейса. (Поля ввода, кнопки, метки)
process_data.py:
def apply_spaces_patterned(pattern, text):
result = []
text_index = 0
for char in pattern:
if char == " ":
result.append(" ")
else:
if text_index < len(text):
result.append(text[text_index])
text_index += 1
if text_index < len(text):
result.append(text[text_index:])
return "".join(result)
def copy_capitalization(input_str: str, output_str: str):
words = input_str.split(" ")
output_words = output_str.split(" ")
for i, word in enumerate(words):
if word[0].capitalize() == word[0]:
# is capitalized
if word.upper() == word:
# is caps
try:
output_words[i] = output_words[i].upper()
except IndexError:
print("out of range, but it's fine bro")
else:
try:
output_words[i] = output_words[i][0].upper() + output_words[i][1:]
except IndexError:
print("out of range, but it's fine bro")
result = "".join(output_words)
return apply_spaces_patterned(output_str, result)
def copy_punctuation(pattern: str, text: str):
VALID_PUNCTUATION = ". , ! ? ; : @ # $ % ^ & / * - + ~".split(" ")
punctuations = []
pattern_words = pattern.split(" ")
text_words = text.split(" ")
for i, word in enumerate(pattern_words):
if word[-1] in VALID_PUNCTUATION:
punctuations.append([word[-1], i])
result = ""
if not punctuations:
return text
for i, word in enumerate(text_words):
added = False
for punc in punctuations:
if punc[1] == i:
added = True
result = result + str(text_words[punc[1]] + punc[0]) + " " # лучше это не трогать
break
if not added:
result = result + word + " "
if result[-1] == " ":
result = result[0:len(result)-1]
return result
def check_word_already_good(word):
allowed_letters = "а р б у з".split(" ")
for letter in word:
if letter not in allowed_letters:
return False
return True
Любая помощь приветствуется!
Что я пробовал:
Помещение точной версии Flet в файл require.txt
Переустановка flutter
Перестройка
Что я ожидаю: приложение на Android, которое имеет пользовательский интерфейс и работает.
Я делаю свое первое приложение с Флетом на Python. Проблема, с которой я сталкиваюсь, заключается в том, что когда я создаю приложение как APK, внутри оно просто пустое. Ни ошибки, ни сбоя. Самое странное, что при тестировании приложение работает совершенно нормально. Я видел в Интернете, что у некоторых людей возникла такая же проблема, но их решения мне не помогли. Я создаю приложение с помощью flet build apk -vv Немного о приложении: [list] [*]Я сделал приложение для себя и выдуманного языка моих друзей. [*]Некоторые части кода написаны на русском языке. [*]Он импортирует только запросы и сам флетирует. [*]Он имеет запросы GET и PUT. [*]Он имеет несколько элементов пользовательского интерфейса. (Поля ввода, кнопки, метки) [/list] Версии: [list] [*]python: 3.12 [*]flet: 0.28.3 [*]flutter: 3.29.2 [/list] [code]main.py: import flet as ft import process_data as pd import requests
to_translate = ''.join(char for char in to_translate if char not in VALID_PUNCTUATION)
to_translate = to_translate.split(" ")
result = "" for word in to_translate: if word in translations: result += translations[word] else: if pd.check_word_already_good(word): result += word else: result += "ар"+word+"уз"
result += " "
result = pd.copy_capitalization(input_field.value, result) result = pd.copy_punctuation(input_field.value, result)
output_field.value = result
page.update()
input_field = ft.TextField(label="Русский", hint_text="Введите текст сюда") output_field = ft.TextField(label="Арбузный", read_only=True, value="Жмакни на кнопку") submit_button = ft.Button(text="Перевести", on_click=translate)
for i, word in enumerate(words): if word[0].capitalize() == word[0]: # is capitalized if word.upper() == word: # is caps try: output_words[i] = output_words[i].upper() except IndexError: print("out of range, but it's fine bro") else: try: output_words[i] = output_words[i][0].upper() + output_words[i][1:] except IndexError: print("out of range, but it's fine bro") result = "".join(output_words)
for i, word in enumerate(pattern_words): if word[-1] in VALID_PUNCTUATION: punctuations.append([word[-1], i])
result = "" if not punctuations: return text
for i, word in enumerate(text_words): added = False for punc in punctuations: if punc[1] == i: added = True result = result + str(text_words[punc[1]] + punc[0]) + " " # лучше это не трогать break if not added: result = result + word + " "
if result[-1] == " ": result = result[0:len(result)-1]
return result
def check_word_already_good(word): allowed_letters = "а р б у з".split(" ")
for letter in word: if letter not in allowed_letters: return False
return True [/code] Любая помощь приветствуется! Что я пробовал: [list] [*]Помещение точной версии Flet в файл require.txt [*]Переустановка flutter [*]Перестройка [/list] Что я ожидаю: приложение на Android, которое имеет пользовательский интерфейс и работает.