FPDF2 not working well with Kivy and KivyMD on android

53 Views Asked by At

I have a app which will generate pdf invoices which is build using python3 and it uses kivy,kivyMD and fpdf2. when I convert it into apk and run it on android it crashes. When I looked at the logs I found the below error

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'

A little further I found this error

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)

I tried adding fonttools in buildozer spec file as well still I got the same error

requirements = python3,kivy==2.2.1,kivymd==1.1.1,fpdf2,fonttools,pillow

Is fontTools not compatible with android ?

The App works when I use fpdf instead of fpdf2 but then I cannot use the table functionality of fpdf2 which sucks!!

Is there a way to solve this error ?

Thanks

0

There are 0 best solutions below