Android ndk: ошибка dlopen: не удается найти hb_ft_face_create

он хорошо работает в androd 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 ()。

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


person Luck    schedule 13.10.2016    source источник
comment
Вы должны опубликовать соответствующий код и make-файлы.   -  person Michael    schedule 13.10.2016


Ответы (1)


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

person Omid    schedule 19.06.2017