Buildozer failed to build APK due to error in native C code

24 views Asked by At

I have already made a simple Kivy application and want to build APK files of the app via Buildozer, via the command buildozer -v android debug in a virtual environment (because all of needed libraries like kivy I installed there) to build an APK, but it failed.

Here is the error message:

/usr/bin/ccache /home/main/.buildozer/android/platform/android-ndk-r26c/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -MMD -MP -MF /home/main/python_projects/audio-recorder/.buildozer/android/platform/build-arm64-v8a/build/bootstrap_builds/sdl2/obj/local/arm64-v8a/objs-debug/harfbuzz/src/hb-ft.o.d -target aarch64-none-linux-android24 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes  --sysroot /home/main/.buildozer/android/platform/android-ndk-r26c/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument  -D_FORTIFY_SOURCE=2 -fno-exceptions -fno-rtti -fpic -O0 -UNDEBUG -fno-limit-debug-info  -I/home/main/python_projects/audio-recorder/.buildozer/android/platform/build-arm64-v8a/build/bootstrap_builds/sdl2/jni/SDL2_ttf/external/harfbuzz/ -I/home/main/python_projects/audio-recorder/.buildozer/android/platform/build-arm64-v8a/build/bootstrap_builds/sdl2/jni/SDL2_ttf/external/harfbuzz/src/ -I/home/main/python_projects/audio-recorder/.buildozer/android/platform/build-arm64-v8a/build/bootstrap_builds/sdl2/jni/SDL2_ttf/external/harfbuzz/../freetype/include/ -I/home/main/python_projects/audio-recorder/.buildozer/android/platform/build-arm64-v8a/build/bootstrap_builds/sdl2/jni/SDL2_ttf/external/harfbuzz    -DANDROID -DHAVE_CONFIG_H -fPIC -Wformat -Werror=format-security   -c  /home/main/python_projects/audio-recorder/.buildozer/android/platform/build-arm64-v8a/build/bootstrap_builds/sdl2/jni/SDL2_ttf/external/harfbuzz/src/hb-ft.cc -o /home/main/python_projects/audio-recorder/.buildozer/android/platform/build-arm64-v8a/build/bootstrap_builds/sdl2/obj/local/arm64-v8a/objs-debug/harfbuzz/src/hb-ft.o
/home/main/python_projects/audio-recorder/.buildozer/android/platform/build-arm64-v8a/build/bootstrap_builds/sdl2/jni/SDL2_ttf/external/harfbuzz/src/hb-ft.cc:759:73: error: cast from 'void (*)(FT_Face)' (aka 'void (*)(FT_FaceRec_ *)') to 'FT_Generic_Finalizer' (aka 'void (*)(void *)') converts to incompatible function type [-Werror,-Wcast-function-type-strict]
  if (unlikely (!ft_face->generic.data || ft_face->generic.finalizer != (FT_Generic_Finalizer) hb_ft_face_finalize))
                                                                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/main/python_projects/audio-recorder/.buildozer/android/platform/build-arm64-v8a/build/bootstrap_builds/sdl2/jni/SDL2_ttf/external/harfbuzz/src/hb.hh:263:25: note: expanded from macro 'unlikely'
#define unlikely(expr) (expr)
                        ^~~~
/home/main/python_projects/audio-recorder/.buildozer/android/platform/build-arm64-v8a/build/bootstrap_builds/sdl2/jni/SDL2_ttf/external/harfbuzz/src/hb-ft.cc:765:34: error: cast from 'void (*)(FT_Face)' (aka 'void (*)(FT_FaceRec_ *)') to 'FT_Generic_Finalizer' (aka 'void (*)(void *)') converts to incompatible function type [-Werror,-Wcast-function-type-strict]
    ft_face->generic.finalizer = (FT_Generic_Finalizer) hb_ft_face_finalize;
                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/main/python_projects/audio-recorder/.buildozer/android/platform/build-arm64-v8a/build/bootstrap_builds/sdl2/jni/SDL2_ttf/external/harfbuzz/src/hb-ft.cc:1035:32: error: cast from 'void (*)(FT_Face)' (aka 'void (*)(FT_FaceRec_ *)') to 'FT_Generic_Finalizer' (aka 'void (*)(void *)') converts to incompatible function type [-Werror,-Wcast-function-type-strict]
  ft_face->generic.finalizer = (FT_Generic_Finalizer) _release_blob;
                               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3 errors generated.
make: *** [/home/main/.buildozer/android/platform/android-ndk-r26c/build/core/build-binary.mk:415: /home/main/python_projects/audio-recorder/.buildozer/android/platform/build-arm64-v8a/build/bootstrap_builds/sdl2/obj/local/arm64-v8a/objs-debug/harfbuzz/src/hb-ft.o] Error 1


  STDERR:

# Command failed: ['/home/main/python_projects/audio-recorder/venv/bin/python', '-m', 'pythonforandroid.toolchain', 'create', '--dist_name=audiorecorder', '--bootstrap=sdl2', '--requirements=python3,kivy,pyaudio', '--arch=arm64-v8a', '--copy-libs', '--color=always', '--storage-dir=/home/main/python_projects/audio-recorder/.buildozer/android/platform/build-arm64-v8a', '--ndk-api=24', '--ignore-setup-py', '--debug']
...
#     PACKAGES_PATH = '/home/main/.buildozer/android/packages'
#     ANDROIDSDK = '/home/main/.buildozer/android/platform/android-sdk'
#     ANDROIDNDK = '/home/main/.buildozer/android/platform/android-ndk-r26c'
#     ANDROIDAPI = '34'
#     ANDROIDMINAPI = '24'
# 
# Buildozer failed to execute the last command
# The error might be hidden in the log above this error
# Please read the full log, and search for it before
# raising an issue with buildozer itself.
# In case of a bug report, please add a full log with log_level = 2

What can I do to fix this error?

0

There are 0 answers