FPDF2 无法与 Android 上的 Kivy 和 KivyMD 很好地配合

问题描述 投票:0回答:1

我有一个可以生成 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 的表格功能,这很糟糕!

有办法解决这个错误吗?

谢谢

python-3.x kivy kivymd buildozer fpdf2
1个回答
0
投票

而不是使用

requirements=fonttools

使用

requirements=https://github.com/fonttools/fonttools/archive/refs/heads/main.zip

这将解决你的问题

© www.soinside.com 2019 - 2024. All rights reserved.