我正在尝试构建一个简单的Telegram bot来启动和停止用作安全凸轮的旧三星设备。

通过ssh一切都很好,因此所涉及的命令已经被证明是有效的。现在只需将它们移至QPython和python-telegram-bot lib。

机器人也已经可以从设备本身运行了。问题是涉及外壳程序调用的命令,因为这个命令(QPython shell以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

据我了解,从QPython shell打开IP网络摄像头应用程序时,库存在问题。我找不到类似问题的参考。

关于如何解决此问题的任何想法?
谢谢。

最佳答案

解决方案是:

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


这是用户数据分区内应用程序的lib路径。对于我来说,目前尚不清楚为什么am二进制文件如果从QPython启动后却找不到。

之后:

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


...终于可以了。

关于android - QPython(Android)出现“无法链接执行”错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43778749/

10-09 07:09