【发布时间】:2018-01-28 13:23:03
【问题描述】:
我的 Kivy 应用在 Android 上立即崩溃。 我想这是一些 Python2/Python3 不兼容,但我不知道这个错误的实际原因是什么(adb logcat 输出):
01-28 14:00:39.421 7457 7492 I python : File "/home/kivy/Pfadfinder/.buildozer/android/app/main.py", line 5, in <module>
01-28 14:00:39.421 7457 7492 I python : File "/home/kivy/Pfadfinder/.buildozer/android/platform/build/dists/pfadfinder/private/lib/python2.7/site-packages/kivy/app.py", line 802, in run**strong text**
01-28 14:00:39.421 7457 7492 I python : File "/home/kivy/Pfadfinder/.buildozer/android/app/pfadfinder/hauptmenue.py", line 152, in build
01-28 14:00:39.422 7457 7492 I python : File "/home/kivy/Pfadfinder/.buildozer/android/platform/build/dists/pfadfinder/private/lib/python2.7/site-packages/kivy/lang/builder.py", line 382, in load_string
01-28 14:00:39.422 7457 7492 I python : File "/home/kivy/Pfadfinder/.buildozer/android/platform/build/dists/pfadfinder/private/lib/python2.7/site-packages/kivy/lang/builder.py", line 496, in _apply_rule
01-28 14:00:39.422 7457 7492 I python : File "/home/kivy/Pfadfinder/.buildozer/android/platform/build/dists/pfadfinder/private/lib/python2.7/site-packages/kivy/lang/parser.py", line 281, in create_missing
01-28 14:00:39.423 7457 7492 I python : TypeError: Argument 'name' has incorrect type (expected str, got unicode)
该应用是在 Windows 上使用 Python 3.6 开发的。
在 Android 上,它在 Python 2.7.2 (Kivy v1.10.0) 中运行。
注意:我是德国人,所以该应用程序应与变音符号 ä ö ü 一起使用。 我正在像这样加载 KV 文件:
def build(self):
with io.open(os.path.join(THIS_DIR, "hauptmenue.kv"), encoding='utf-8') as f:
screen_management = Builder.load_string(f.read())
最后一行是堆栈跟踪中提到的第 152 行。
KV 文件如下所示:
:kivy 1.1.0
ScreenManagement:
hauptmenue: hauptmenue
MainMenu:
id: hauptmenue
<LevelButton>:
font_size: "40dp"
<MainMenu>:
name: "hauptmenue"
level_auswahl: level_auswahl
BoxLayout:
orientation: "vertical"
size: root.size
Label:
text: "Pfadfinder"
size_hint: (1.0, None)
font_size: "30dp"
height: "40dp"
GridLayout:
id: level_auswahl
rows: 6
cols: 5
BoxLayout:
orientation: "horizontal"
size_hint: (1.0, None)
height: "40dp"
Button:
text: "Einstellungen"
on_release: app.open_settings()
font_size: "30dp"
Button:
text: "Beenden"
on_release: app.stop()
font_size: "30dp"
<Einstellungen>:
name: "einstellungen"
Settings:
on_close: app.close_settings()
【问题讨论】:
标签: android python kivy kivy-language