【发布时间】:2020-01-19 10:57:38
【问题描述】:
我想将我的 python 脚本编译为 APK 并在 Android 上运行。我正在使用 kivy、os、pika、threading 和自己的模块“RabbitMQ”。
Lubuntu 18.04 和 Python 3.6
对于代码,我使用 Python 3.7。
在 buildozer.spec 我有 requirements = python3,kivy,RabbitMQ 和 android.permissions = INTERNET。
当我在 Android 上运行我的应用时,它开始加载,然后就崩溃了。
这是我的 logcat 日志:
01-18 21:28:27.937 29220 29255 I python : Traceback (most recent call last):
01-18 21:28:27.937 29220 29255 I python : File "/home/virtual/Downloads/.buildozer/android/platform/build-armeabi-v7a/build/other_builds/python3-libffi-openssl-sqlite3/armeabi-v7a__ndk_target_21/python3/Lib/threading.py", line 917, in _bootstrap_inner
01-18 21:28:27.937 29220 29255 I python : File "/home/virtual/Downloads/.buildozer/android/platform/build-armeabi-v7a/build/python-installs/myapp/jnius/__init__.py", line 54, in jnius_thread_hook
01-18 21:28:27.938 29220 29255 I python : File "/home/virtual/Downloads/.buildozer/android/platform/build-armeabi-v7a/build/other_builds/python3-libffi-openssl-sqlite3/armeabi-v7a__ndk_target_21/python3/Lib/threading.py", line 865, in run
01-18 21:28:27.938 29220 29255 I python : File "/home/virtual/Downloads/.buildozer/android/app/main.py", line 216, in start
01-18 21:28:27.938 29220 29255 I python : File "/home/virtual/Downloads/.buildozer/android/platform/build-armeabi-v7a/build/python-installs/myapp/kivy/app.py", line 829, in run
01-18 21:28:27.938 29220 29255 I python : File "/home/virtual/Downloads/.buildozer/android/app/main.py", line 211, in build
01-18 21:28:27.939 29220 29255 I python : File "/home/virtual/Downloads/.buildozer/android/app/main.py", line 96, in __init__
01-18 21:28:27.939 29220 29255 I python : File "/home/virtual/Downloads/.buildozer/android/platform/build-armeabi-v7a/build/python-installs/myapp/kivy/uix/floatlayout.py", line 65, in __init__
01-18 21:28:27.939 29220 29255 I python : File "/home/virtual/Downloads/.buildozer/android/platform/build-armeabi-v7a/build/python-installs/myapp/kivy/uix/layout.py", line 76, in __init__
01-18 21:28:27.940 29220 29255 I python : File "/home/virtual/Downloads/.buildozer/android/platform/build-armeabi-v7a/build/python-installs/myapp/kivy/uix/widget.py", line 361, in __init__
01-18 21:28:27.940 29220 29255 I python : File "/home/virtual/Downloads/.buildozer/android/platform/build-armeabi-v7a/build/python-installs/myapp/kivy/uix/widget.py", line 469, in apply_class_lang_rules
01-18 21:28:27.940 29220 29255 I python : File "/home/virtual/Downloads/.buildozer/android/platform/build-armeabi-v7a/build/python-installs/myapp/kivy/lang/builder.py", line 538, in apply
01-18 21:28:27.941 29220 29255 I python : File "/home/virtual/Downloads/.buildozer/android/platform/build-armeabi-v7a/build/python-installs/myapp/kivy/lang/builder.py", line 659, in _apply_rule
01-18 21:28:27.941 29220 29255 I python : File "/home/virtual/Downloads/.buildozer/android/platform/build-armeabi-v7a/build/python-installs/myapp/kivy/lang/builder.py", line 654, in _apply_rule
01-18 21:28:27.941 29220 29255 I python : File "kivy/_event.pyx", line 188, in kivy._event.EventDispatcher.__cinit__
01-18 21:28:27.941 29220 29255 I python : File "kivy/properties.pyx", line 447, in kivy.properties.Property.link
01-18 21:28:27.942 29220 29255 I python : File "kivy/properties.pyx", line 632, in kivy.properties.NumericProperty.init_storage
01-18 21:28:27.942 29220 29255 I python : File "kivy/properties.pyx", line 418, in kivy.properties.Property.init_storage
01-18 21:28:27.942 29220 29255 I python : File "kivy/properties.pyx", line 655, in kivy.properties.NumericProperty.convert
01-18 21:28:27.942 29220 29255 I python : File "kivy/properties.pyx", line 663, in kivy.properties.NumericProperty.parse_str
01-18 21:28:27.943 29220 29255 I python : File "kivy/properties.pyx", line 670, in kivy.properties.NumericProperty.parse_list
01-18 21:28:27.943 29220 29255 I python : File "kivy/properties.pyx", line 296, in kivy.properties.dpi2px
01-18 21:28:27.943 29220 29255 I python : File "/home/virtual/Downloads/.buildozer/android/platform/build-armeabi-v7a/build/python-installs/myapp/kivy/utils.py", line 505, in __get__
01-18 21:28:27.943 29220 29255 I python : File "/home/virtual/Downloads/.buildozer/android/platform/build-armeabi-v7a/build/python-installs/myapp/kivy/metrics.py", line 163, in dpi
01-18 21:28:27.944 29220 29255 I python : File "/home/virtual/Downloads/.buildozer/android/platform/build-armeabi-v7a/build/python-installs/myapp/jnius/reflect.py", line 159, in autoclass
01-18 21:28:27.944 29220 29255 I python : File "jnius/jnius_export_func.pxi", line 26, in jnius.jnius.find_javaclass
01-18 21:28:27.944 29220 29255 I python : jnius.jnius.JavaException: Class not found b'org/renpy/android/Hardware'
01-18 21:28:27.944 29220 29255 I python :
【问题讨论】:
-
这个错误很奇怪,说明找不到某个java类但是这个java类应该存在,我不明白为什么这个小东西会随机失败。
-
如果你做了一个简单的构建,只运行 kivy 并且没有额外的要求,那行得通吗?
-
是的。当我构建简单的 Hello World 时,它工作正常
-
有趣,我真的不知道为什么会这样。如果您从头开始重新构建,它会以同样的方式失败吗?
-
我删除了所有 buildozer 文件,重新构建,但仍然出现此错误。
标签: python android kivy buildozer