#python #android #kivy #buildozer #kivymd
#python #Android #kivy #buildozer #kivymd
Вопрос:
Я успешно преобразовал файл Python в APK, но кнопка не работает. Тем не менее, он работает на моем компьютере, но при нажатии кнопки ответа нет.
Код:
class HomeScreen(Screen):
pass
class MainApp(MDApp):
def on_start(self):
os.environ['SSL_CERT_FILE'] = certifi.where()
UrlRequest('https://www.themealdb.com/api/json/v1/1/random.php', on_success=self.success, on_failure=self.failure, on_error=self.error)
def success(self, urlrequest, result):
ingredient_list = self.root.ids['home'].ids['ingredient_list']
print(result)
self.youtube = result['meals'][0]['strYoutube']
self.name = result['meals'][0]['strMeal']
self.category = result['meals'][0]['strCategory']
self.area = result['meals'][0]['strArea']
self.image = result['meals'][0]['strMealThumb']
self.url = result['meals'][0]['strSource']
for i in range(1,21):
if result['meals'][0][f'strIngredient{i}'] != '':
l = Label(text=result['meals'][0][f'strIngredient{i}'],color=(0,0,0,1))
ingredient_list.add_widget(l)
def view(self):
if self.url != '' and self.youtube == '':
Snackbar(
text=self.url,
size_hint_x=2
).show()
if self.youtube != '' and self.url == '':
Snackbar(
text=self.youtube,
size_hint_x=2
).show()
if self.youtube != '' and self.url != '':
Snackbar(
text=self.youtube,
size_hint_x=2
).show()
if self.youtube == '' and self.url == '':
Snackbar(text='Url is not available').show()
MainApp().run()
Файл KV
ScreenManager:
HomeScreen:
id:home
name:'home'
<HomeScreen>:
FloatLayout:
MDRaisedButton:
pos_hint:{'top':.27,'right':.65}
size_hint:.3,.05
text:'View'
on_press: app.view()
Комментарии:
1. Используете ли вы одну и ту же версию kivy и kivymd как на вашем ПК, так и в файле buildozer.spec? Возможно, это одна из причин этого. Попробуйте использовать последнюю версию обоих в файле buildozer.spec