#python #android #kivy
#python #Android #kivy
Вопрос:
Я пытаюсь развернуть приложение kivy на Android, оно отлично работает на моем компьютере с Linux, но когда я развертываю то же приложение на Android, оно вылетает после загрузки экрана. Примечание: При развертывании приложения ошибок не отображается. Он использует Интернет, и я также предоставил разрешения на доступ в Интернет. В чем может быть причина, по которой мое приложение всегда вылетает после загрузки экрана в Android. Вот мои импортные файлы, если они имеют какое-либо значение.
import kivy
from kivy.app import App
from kivy.uix.widget import Widget
from kivy.uix.label import Label
from kivy.uix.button import Button
from kivy.uix.textinput import TextInput
from kivy.uix.floatlayout import FloatLayout
from kivy.properties import ObjectProperty
from kivy.clock import Clock
from functools import partial
import pandas as pd
import time
from datetime import datetime
import plyer
вот мой полный код:
https://github.com/sfsdsfdf/123
Комментарии:
1. Вероятно, вам нужно обрабатывать запросы разрешений во время выполнения. смотрите документацию .
2.
winsound
Поддерживается на Android?3. @JohnAnderson Должен ли я попробовать удалить его?
Ответ №1:
У меня произошло то же самое, и оказалось, что версия kivy не соответствует. Я разрабатывал Linux с использованием Kivy 2.0.0, но buildozer использовал kivy 1.9.1, чтобы исправить, мне пришлось изменить файл buildozer.spec, чтобы указать номер версии kivy. Сначала удалите кэшированные файлы buildozer:
rm ~./.buildozer
и
rm <project>/.buildozer
изменить с этого:
requirements = python3,kivy
к этому:
requirements = python3,kivy==2.0.0,<your other requirements here>
убедитесь, что все ваши расширения файлов включены в builder.spec
Например, мне пришлось добавить json и wav
# (list) Source files to include (let empty to include all the files)
source.include_exts = py,png,jpg,kv,atlas,json,wav
Я также заметил, что версия kivy в
.buildozer/android/platform/python-for-android/pythonforandroid/recipes/kivy/__init__.py
неверно. Я не знаю, почему и как это настроено, поэтому я просто отредактировал файл вручную. У него была версия 1.11.1, но я использую 2.0.0, поэтому я просто изменил ее на эту.
class KivyRecipe(CythonRecipe):
version = '2.0.0'
url = 'https://github.com/kivy/kivy/archive/{version}.zip'
name = 'kivy'
Затем запустите
buildozer -v android debug
и он должен создать рабочий файл .apk.
если у вас все еще есть ошибки, запустите приложение из эмулятора или с телефона с включенной отладкой по USB и используйте
abd logcat tee debug.log
И ищите ошибки.