--
You received this message because you are subscribed to the Google Groups "Kivy users support" group.
To unsubscribe from this group and stop receiving emails from it, send an email to kivy-users+...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/kivy-users/CALrVYjYrxzsyrhvZQFB-XRh%3DPa4nK8j9NCg44aNK7xYoG1pkEA%40mail.gmail.com.
--
To view this discussion visit https://groups.google.com/d/msgid/kivy-users/CAK1RZi%3DZAs_XF_UeTqcHaZ_f4CbZXeC2bj8yBbmcfB4%3DyMivNg%40mail.gmail.com.
Hi Metin,
There’s no need to switch to pybidi. I tested a simple Kivy app using python-bidi and arabic_reshaper, and it worked perfectly on Android.
✅ What I did in buildozer.spec:Requirements:
I also made sure to use a high Android API and SDK version:
After applying this setup, the APK was built successfully and ran without any issues. Arabic text displayed properly using bidi.algorithm.get_display() and arabic_reshaper.reshape().
If you're still running into build errors, feel free to share your Buildozer logs — I'd be happy to help pinpoint the exact issue.
Best regards,
OuchenTech
To view this discussion visit https://groups.google.com/d/msgid/kivy-users/e9ad542f-9cd4-4f14-a4a8-18a2992012ddn%40googlegroups.com.
Hi,
The error:
"dlopen failed: ...bidi.so is for EM_X86_64 instead of EM_AARCH64"
means that python-bidi was installed as a binary (wheel) built for x86_64 (PC), but Android requires ARM64. This happens because Buildozer (via pip) downloaded the .whl instead of the .tar.gz source — and that wheel includes a .so file not compatible with Android.
(I’m not sure why this happens specifically in your case, but it’s a common issue.)
Here are some potential solutions you can try:
1. Try forcing pip to install from source
Before the build, run:
pip uninstall python-bidi
pip install --no-binary python-bidi python-bidi
Then clean and rebuild:
buildozer android clean
buildozer android debug
2. Try using the GitHub version
In your buildozer.spec, replace python-bidi with the GitHub source:
requirements = python3,kivy,git+https://github.com/MeirKriheli/python-bidi.git,future,arabic_reshaper
This tells Buildozer to install directly from the source code, which may avoid the binary issue.
3. Try copying the code directly
- Download the library from GitHub
- Copy the bidi/ folder into your project directory (alongside main.py)
- Remove python-bidi from the requirements list
- Then import it in your code as usual:
from bidi.algorithm import get_display
Hello Yassine,
I think I found the solution for my case by downgrading python-bidi to python-bidi==0.4.2. I also tried with intermediate versions like 0.5.0 or 0.6.2 but only 0.4.2 worked out.
Python;
from bidi.algorithm import get_display
buildozer.spec;
requirements = python3,kivy,git+https://github.com/kivymd/KivyMD.git@master,materialyoucolor,asynckivy,asyncgui,pillow,python-bidi==0.4.2,arabic-reshaper
Yes, indeed it’s a known issue. I am not sure whether it worked only for my case but I will share my observations with community as much as I can.
Your advices were inspiring. I really appreciate for your valuable support. Thanks very much my friend 😊
Best,
Metin
To view this discussion visit https://groups.google.com/d/msgid/kivy-users/25f74e5e-c9ba-4707-8370-35fc78a56be9n%40googlegroups.com.
Hi Metin,
I'm glad it worked for you! Thanks for sharing the solution with the community.
Quick tip: Be careful when choosing fonts for Arabic text. Some fonts don't display all Arabic letters properly.
Best, OuchenTech