我有一个可以生成 pdf 发票的应用程序,它是使用 python3 构建的,它使用 kivy、kivyMD 和 fpdf2。当我将其转换为 apk 并在 android 上运行时,它崩溃了。当我查看日志时,发现以下错误
12-14 14:47:00.248 31449 31558 I python : Traceback (most recent call last):
12-14 14:47:00.248 31449 31558 I python : File "/mnt/c/Users/Swaleh/Documents/Bill/.buildozer/android/app/main.py", line 12, in <module>
12-14 14:47:00.248 31449 31558 I python : File "/mnt/c/Users/Swaleh/Documents/Bill/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/python-installs/billGenerator/arm64-v8a/fpdf/__init__.py", line 22, in <module>
12-14 14:47:00.248 31449 31558 I python : File "/mnt/c/Users/Swaleh/Documents/Bill/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/python-installs/billGenerator/arm64-v8a/fpdf/fpdf.py", line 86, in <module>
12-14 14:47:00.248 1203 3921 D ApplicationPolicy: getApplicationStateEnabled : pkg = com.google.android.gms userId : 0
12-14 14:47:00.249 31449 31558 I python : File "/mnt/c/Users/Swaleh/Documents/Bill/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/python-installs/billGenerator/arm64-v8a/fpdf/fonts.py", line 17, in <module>
12-14 14:47:00.249 31449 31558 I python : ModuleNotFoundError: No module named 'fontTools'
再进一步我发现了这个错误
12-14 15:10:19.722 3707 3813 I python : Traceback (most recent call last):
12-14 15:10:19.722 3707 3813 I python : File "/mnt/c/Users/Swaleh/Documents/Bill/.buildozer/android/app/main.py", line 12, in <module>
12-14 15:10:19.722 3707 3813 I python : File "/mnt/c/Users/Swaleh/Documents/Bill/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/python-installs/billGenerator/arm64-v8a/fpdf/__init__.py", line 22, in <module>
12-14 15:10:19.723 3707 3813 I python : File "/mnt/c/Users/Swaleh/Documents/Bill/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/python-installs/billGenerator/arm64-v8a/fpdf/fpdf.py", line 95, in <module>
12-14 15:10:19.723 3707 3813 I python : File "/mnt/c/Users/Swaleh/Documents/Bill/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/python-installs/billGenerator/arm64-v8a/fpdf/image_parsing.py", line 25, in <module>
12-14 15:10:19.723 3707 3813 I python : File "/mnt/c/Users/Swaleh/Documents/Bill/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/python-installs/billGenerator/arm64-v8a/fpdf/svg.py", line 35, in <module>
12-14 15:10:19.723 3707 3813 I python : File "/mnt/c/Users/Swaleh/Documents/Bill/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/python-installs/billGenerator/arm64-v8a/fpdf/output.py", line 34, in <module>
12-14 15:10:19.724 3707 3813 I python : File "/mnt/c/Users/Swaleh/Documents/Bill/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/python-installs/billGenerator/arm64-v8a/fontTools/subset/__init__.py", line 8, in <module>
12-14 15:10:19.724 3707 3813 I python : File "/mnt/c/Users/Swaleh/Documents/Bill/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/python-installs/billGenerator/arm64-v8a/fontTools/ttLib/tables/otTables.py", line 19, in <module>
12-14 15:10:19.724 3707 3813 I python : File "/mnt/c/Users/Swaleh/Documents/Bill/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/python-installs/billGenerator/arm64-v8a/fontTools/pens/boundsPen.py", line 2, in <module>
12-14 15:10:19.724 3707 3813 I python : ImportError: dlopen failed: "/data/data/org.test.billgenerator/files/app/_python_bundle/site-packages/fontTools/misc/bezierTools.so" is for EM_X86_64 (62) instead of EM_AARCH64 (183)
我也尝试在 buildozer 规范文件中添加 fonttools,但仍然遇到相同的错误
requirements = python3,kivy==2.2.1,kivymd==1.1.1,fpdf2,fonttools,pillow
fontTools 与 android 不兼容吗?
当我使用 fpdf 而不是 fpdf2 时,该应用程序可以工作,但随后我无法使用 fpdf2 的表格功能,这很糟糕!
有办法解决这个错误吗?
谢谢
而不是使用
requirements=fonttools
使用
requirements=https://github.com/fonttools/fonttools/archive/refs/heads/main.zip
这将解决你的问题