В настоящее время я пытаюсь связать 3 готовые разделяемые библиотеки с собственной разделяемой библиотекой JNI. Общие библиотеки были построены на Linux. Когда я связываю одну из библиотек с собственным JNI, я получаю неудовлетворительную ошибку связи, прикрепленную ниже.
Loading the library normally failed: java.lang.UnsatisfiedLinkError: dlopen failed: library "libc.so.6" not found.
зависимость времени выполнения моей общей библиотеки (libdivsufsort) показана ниже
Dynamic section at offset 0x9e00 contains 25 entries:
Tag Type Name/Value
0x0000000000000001 (NEEDED) Shared library: [libc.so.6]
0x000000000000000e (SONAME) Library soname [libdivsufsort.so.3]
0x000000000000000c (INIT) 0x8b8
0x000000000000000d (FINI) 0x85c8
0x0000000000000019 (INIT_ARRAY) 0x209de8
0x000000000000001b (INIT_ARRAYSZ) 8 (bytes)
0x000000000000001a (FINI_ARRAY) 0x209df0
0x000000000000001c (FINI_ARRAYSZ) 8 (bytes)
0x000000006ffffef5 (GNU_HASH) 0x1f0
0x0000000000000005 (STRTAB) 0x510
0x0000000000000006 (SYMTAB) 0x258
0x000000000000000a (STRSZ) 375 (bytes)
0x000000000000000b (SYMENT) 24 (bytes)
0x0000000000000003 (PLTGOT) 0x20a000
0x0000000000000002 (PLTRELSZ) 216 (bytes)
0x0000000000000014 (PLTREL) RELA
0x0000000000000017 (JMPREL) 0x7e0
0x0000000000000007 (RELA) 0x708
0x0000000000000008 (RELASZ) 216 (bytes)
0x0000000000000009 (RELAENT) 24 (bytes)
0x000000006ffffffe (VERNEED) 0x6c8
0x000000006fffffff (VERNEEDNUM) 1
0x000000006ffffff0 (VERSYM) 0x688
0x000000006ffffff9 (RELACOUNT) 3
0x0000000000000000 (NULL) 0x0
Подобные проблемы возникают с моими другими библиотеками. Связь отлично работает на Linux, потому что libc.so.6 находится в пути к библиотеке.
Кажется, что Android не поддерживает динамическое связывание с версионной библиотекой и не содержит версионных библиотек в system / lib. Как я могу решить эту проблему?