Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/219.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在kivy发行版中包含PySerial库_Android_Python_Serial Port_Kivy_Pyserial - Fatal编程技术网

Android 在kivy发行版中包含PySerial库

Android 在kivy发行版中包含PySerial库,android,python,serial-port,kivy,pyserial,Android,Python,Serial Port,Kivy,Pyserial,我正在编写一个小python脚本,它将使用kivy在Android上运行。基本上我是Python编程新手。 脚本本身在Linux下可以在我的计算机上运行,但我无法为android编译PySerial库。 我用buildozer调试了这个应用程序,但当我打开它时,它在Android上崩溃了。 使用pythonforandroid构建apk时会遇到以下错误 Run pymodules install We want to install: serial Check if and /usr/bin/p

我正在编写一个小python脚本,它将使用kivy在Android上运行。基本上我是Python编程新手。 脚本本身在Linux下可以在我的计算机上运行,但我无法为android编译PySerial库。 我用buildozer调试了这个应用程序,但当我打开它时,它在Android上崩溃了。 使用pythonforandroid构建apk时会遇到以下错误

Run pymodules install
We want to install: serial
Check if and /usr/bin/pip2 are present
Check if virtualenv is existing
Installing virtualenv
./distribute.sh: line 119: --python=python2.7: command not found
有没有一种方法可以包含串行库以便在Android上使用

编辑

错误日志:

[INFO              ] Logger: Record log in /data/data/org.led.serialled/files/.kivy/logs/kivy_14-08-25_10.txt
[INFO              ] Kivy v1.8.0
[INFO              ] Factory: 157 symbols loaded
[DEBUG             ] Cache: register <kv.lang> with limit=None, timeout=Nones
[DEBUG             ] Cache: register <kv.image> with limit=None, timeout=60s
[DEBUG             ] Cache: register <kv.atlas> with limit=None, timeout=Nones
[WARNING           ] stderr: /data/data/org.led.serialled/files/lib/python2.7/site-packages/kivy/core/image/img_pygame.py:12: RuntimeWarning: import cdrom: No module named cdrom
[WARNING           ] stderr: (ImportError: No module named cdrom)
[INFO              ] Image: Providers: img_tex, img_dds, img_pygame, img_gif (img_pil ignored)
[DEBUG             ] Cache: register <kv.texture> with limit=1000, timeout=60s
[DEBUG             ] Cache: register <kv.shader> with limit=1000, timeout=3600s
[WARNING           ] stderr: Traceback (most recent call last):
[WARNING           ] stderr:   File "/home/konstantin/Desktop/buildozer_LED/.buildozer/android/app/main.py", line 3, in <module>
[WARNING           ] stderr:   File "/home/konstantin/Desktop/buildozer_LED/.buildozer/android/app/_applibs/serial/__init__.py", line 21, in <module>
[WARNING           ] stderr:   File "/home/konstantin/Desktop/buildozer_LED/.buildozer/android/app/_applibs/serial/serialposix.py", line 15, in <module>
[WARNING           ] stderr: ImportError: No module named termios
[INFO]记录器:记录登录/data/data/org.led.serialled/files/.kivy/logs/kivy_14-08-25_10.txt
[信息]Kivy v1.8.0
[信息]工厂:已加载157个符号
[调试]缓存:注册限制=无,超时=无
[DEBUG]缓存:注册限制为无,超时为60s
[调试]缓存:注册限制=无,超时=无
[警告]stderr:/data/data/org.led.serialled/files/lib/python2.7/site packages/kivy/core/image/img_pygame.py:12:运行时警告:导入cdrom:没有名为cdrom的模块
[警告]标准:(导入错误:没有名为cdrom的模块)
[信息]图片:提供商:img_-tex、img_-dds、img_-pygame、img_-gif(img_-pil忽略)
[调试]缓存:寄存器限制为1000,超时为60s
[调试]缓存:注册限制为1000,超时为3600s
[警告]stderr:回溯(最近一次呼叫最后一次):
[警告]stderr:File“/home/konstantin/Desktop/buildozer\u LED/.buildozer/android/app/main.py”,第3行,在
[警告]标准:文件“/home/konstantin/Desktop/buildozer\u-LED/.buildozer/android/app/\u-applibs/serial/\u-init\u.py”,第21行,在
[警告]stderr:File“/home/konstantin/Desktop/buildozer\u LED/.buildozer/android/app/\u applibs/serial/serialposix.py”,第15行,在
[警告]标准:导入错误:没有名为termios的模块

这表示任何库,如果它是纯python库或具有已知的库,则只需将其添加到推土机.spec的“需求”部分即可

# requirements of the app
requirements = pyserial,pycrypto,pyasn1,pyjnius,twisted,kivy
但是,如果lib不是纯python,那么您需要提供一个if-if-it-existed脚本,该脚本只不过是一个简单的脚本,用于向lib添加补丁,以便为armandroid编译它。然后将其作为需求添加到推土机.spec

# requirements of the app
requirements = pyserial,pycrypto,pyasn1,pyjnius,twisted,kivy

pyserial看起来像是一个纯python库

您已经添加了
pyserial
,并从黑名单中删除了termios

buildozer.spec中使用:

# (list) python-for-android whitelist
android.p4a_whitelist = lib-dynload/termios.so
或者将
lib dynload/termios.so
添加到所使用引导的白名单.txt中(请参阅
)

我就是这么做的,但当我在android设备上打开应用程序时,它在显示splashscreen后立即崩溃。当我没有将pyserial包含在需求中时,它就会按照错误日志中应该的方式工作,看起来pyserial依赖于termios,但这并没有包含在构建中。尝试将termios添加到需求中。但请注意,它不是一个纯粹的python库