kivy在Android上运行,有人弄过吗
发布网友
发布时间:2022-05-19 08:24
我来回答
共2个回答
热心网友
时间:2023-10-09 07:44
在电脑上写好一个kivy程序,编译成apk后拷至手机,运行,出现kivy启动界面,随即退出。
怎么查找错误原因呢?在ubuntu下运行该kivy程序(python main.py等),会打印出调试及错误信息,但在手机上怎么办?想到了adb logcat。
于是费了九牛二虎之力,将盛大bambook s1手机连到虚拟机上,执行adb logcat命令,然后执行程序,果然看到了一行错误提示:
I/python ( 4775): [DEBUG ] [Resource ] add </system/fonts> in path list
I/python ( 4775): Traceback (most recent call last):
I/python ( 4775): File "/home/kivy/myprogs/SwitchMT/main.py", line 218, in <mole>
I/python ( 4775): File "/home/kivy/android/python-for-android/build/python-install/lib/python2.7/site-packages/kivy/app.py", line 600, in run
I/python ( 4775): File "/home/kivy/myprogs/SwitchMT/main.py", line 201, in build
I/python ( 4775): File "<string>", line 15, in write
I/python ( 4775): UnicodeDecodeError: 'ascii' codec can't decode byte 0xe4 in position 7: ordinal not in range(128)
该行是一条含中文字符的print语句,字串前未加u。反正以前调试用的语句,不作分析,直接去掉。再次运行,通过。终于出现了程序的kivy界面了。
再查看前面日志,却发现这么一句:
I/python ( 4775): [INFO ] Kivy v1.8.0-dev
I/python ( 4775): [INFO ] [Logger ] Record log in /mnt/sdcard/org.test.SwitchMT/.kivy/logs/kivy_13-08-04_1.txt
自己升级安装的,在ubuntu中运行时所用的kivy v1.7.1,怎么打apk包时变成了1.8.0-dev不得而知。重要的是,该程序在 /mnt/sdcard/org.test.SwitchMT/.kivy/logs下产生有日志文件!找到该目录,发现甚至连main.py都被解包了出来,而日志文件里也指明了错误, 这就是说,运行完kivy程序如果出错,只需在日志目录查看日志文件即可。省去太麻烦的调试环境了。
看了看,发现之前跑过的kivy程序也都有各自的包名下相应的目录,看来这就是kivy的运行机制,当然不知道是不是跟编译打包时加的debug选择有关系,是不是改成release就没有这些目录了呢?毕竟将py源码解出来话卡上不太安全。这就不得而知了。以后再试吧,不过目前至少是解决了查看程序出错日志的问题了,特此记录。
热心网友
时间:2023-10-09 07:44
大佬,请问在手机上安装打开后闪退,查看日志说是,不能连接服务,请检查网络,请问该怎么办?要怎么才能联网?我用的是python for android