Ошибка "НЕ МОЖЕТ СВЯЗАТЬСЯ ВЫПОЛНИТЬ" с QPython (Android)

Я пытаюсь создать простого бота Telegram для запуска и остановки старого устройства Samsung, работающего в качестве камеры безопасности.

Через ssh все хорошо, так что задействованные команды уже доказали свою работоспособность. Теперь нужно перенести их в QPython и библиотеку https://python-telegram-bot.org/.

Также бот уже работает, работает с самого устройства. Проблема в том, что команды, включающие вызовы оболочки, такие как (оболочка QPython работает с привилегиями root):

am start -n com.pas.webcam/.Rolling

Это должно открыть приложение IP Webcam. В скрипте или консоли QPython, если я делаю:

>>> from subprocess import call
>>> call(['/system/bin/am', 'start', '-n', 'com.pas.webcam/.Rolling'])

... у меня есть ошибка:

CANNOT LINK EXECUTABLE "app_process": \
cannot locate symbol "jpeg_crop_scanline" referenced by "/system/lib/libskia.so"...

... с кодом выхода -6

Из того, что я понимаю, есть проблема с библиотекой, когда приложение IP-камеры открывается из оболочки QPython. Я не могу найти ссылку на подобные проблемы.

Любая идея о том, как я могу это исправить? Благодарю.

1 ответ

Решение:

os.environ['LD_LIBRARY_PATH'] = '/data/data/com.pas.webcam/lib'

Это путь к приложению lib внутри раздела userdata. Мне не понятно, почему am двоичный файл не может найти его, если запущен из QPython.

После этого:

cmd = call(['/system/bin/am', 'start', '-n', 'com.pas.webcam/.Rolling'])

... наконец-то работает.

Другие вопросы по тегам