Android ndk: dlopen не удалось: не удается найти "hb_ft_face_create"

Это хорошо работает в Android 4.0, но в Android 4.4 и 5.0 это ошибка: java.lang.UnsatisfiedLinkError: ошибка dlopen: не удается найти символ "hb_ft_face_create", на который ссылается "libHelloWorld.so"...

я создаю общую библиотеку (harfbuzz-ng.so), hb_ft_face_create находится в harfbuzz-ng.so, а HelloWorld.so использует функции hb_ft_face_create() и hb_ft_font_create()。

но другие функции работают хорошо - я тестирую в ndk10 и ndk11.

1 ответ

У меня была такая же проблема с 'hb_buffer_destroy'. Я предполагаю, что проблема в том, что объявление некоторых функций не скомпилировано и не прикреплено к файлу harfbuzz.so. Мне удалось решить Мою проблему, скомпилировав библиотеку Harfbuzz с нуля и статически связав ее с моей библиотекой NDK. (STATIC вместо SHARED)

Другие вопросы по тегам