Kivy pyjnius с Buildozer - добавление jnius в приложение вызывает его падение после запуска
После добавления этих строк кода в мое приложение kivy, когда я запускаю его на моем Android 4.4.4, приложение сразу вылетает
from jnius import autoclass
try:
Environment = autoclass('android.os.Environment')
sdpath = Environment.get_running_app().getExternalStorageDirectory()
# Not on Android
except:
sdpath = App.get_running_app().user_data_dir
Я проверил ADB, чтобы увидеть, появляются ли какие-либо ошибки, но ничего, кроме
03-01 17:44:19.813: E/InputDispatcher(898): channel '437f0100 org.renpy.android.PythonActivity (s)' ~ Channel is unrecoverably broken and will be disposed!
РЕДАКТИРОВАТЬ
Кажется линия sdpath = Environment.get_running_app().getExternalStorageDirectory()
является причиной аварии
2 ответа
На самом деле я проверил adb logcat и заметил, что Environment.get_running_app().getExternalStorageDirectory()
повышения
AttributeError: тип объекта "android.os.Environment" не имеет атрибута "get_running_app"
использование sdpath = Environment.getExternalStorageDirectory().getAbsolutePath()
вместо.
Вы должны попробовать что-то вроде этого:
from kivy.app import platform
...
if platform() == 'android':
DATA_FOLDER = os.getenv('EXTERNAL_STORAGE')
Также включите это в вашу спецификацию buildozer:
requirements = kivy, pyjnius