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 <module> 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源码解出来到卡上不太安全。以后再试吧,不过目前至少是解决了查看程序报错日志的问题了,特此记录。
原创文章,作者:苏葳,如需转载,请注明出处:https://www.swmemo.com/504.html