Ошибка при запуске исполняемого файла проекта Tf на Android, который скомпилирован для архитектуры ARM 64

#runtime-error #shared-libraries #tensorflow-lite #arm64 #null-pointer

#время выполнения -ошибка #разделяемые библиотеки #tensorflow-lite #arm64 #нулевой указатель

Вопрос:

Я разрабатываю решение Tensorflow-lite для развертывания на архитектуре ARM-64. Я скомпилировал наш код на C, используя автономный набор инструментов Android ndk. Я включил все библиотеки, которые были необходимы для компиляции, и успешно получил out.exe файл и out.so файл о компиляции. Но при попытке запустить EXE-файл на телефоне Android с архитектурой arm64 (используя среду оболочки adb и отправив все необходимые библиотеки, используемые во время компиляции и выхода.так получается) выдает ошибку разыменования нулевого указателя. Это журнал ошибок, полученный в cmd после выполнения EXE-файла-

 WARNING: linker: Warning: "/data/snd/NC2/libtensorflowlite_c.so" unused DT entry: DT_RPATH (type 0xf arg 0xf68) (ignoring)
WARNING: linker: Warning: "/data/snd/NC2/libpthread.so.0" has unsupported flags DT_FLAGS_1=0x29 (ignoring unsupported flags)
WARNING: linker: Warning: "/data/snd/NC2/libpthread.so.0" has unsupported flags DT_FLAGS_1=0x29 (ignoring unsupported flags)
WARNING: linker: Warning: "/data/snd/NC2/libpthread.so.0" has unsupported flags DT_FLAGS_1=0x29 (ignoring unsupported flags)
WARNING: linker: Warning: "/data/snd/NC2/libtensorflowlite_c.so" unused DT entry: DT_RPATH (type 0xf arg 0xf68) (ignoring)
WARNING: linker: Warning: "/data/snd/NC2/libpthread.so.0" has unsupported flags DT_FLAGS_1=0x29 (ignoring unsupported flags)
Segmentation fault (core dumped)
 

Это полученный файл журнала —

 12-04 12:25:37.178  4209  4209 F DEBUG   : signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x68
12-04 12:25:37.178  4209  4209 F DEBUG   : Cause: null pointer dereference
12-04 12:25:37.178  4209  4209 F DEBUG   :     x0  0000000000000000  x1  000000775bd15ff8  x2  0000000000000000  x3  0000000000000001
12-04 12:25:37.178  4209  4209 F DEBUG   :     x4  0000008000000000  x5  0000000000000000  x6  0000000080000000  x7  00000000003880f3
12-04 12:25:37.178  4209  4209 F DEBUG   :     x8  000000000000000a  x9  00000000000819f8  x10 000000775bd08000  x11 0000000000000020
12-04 12:25:37.178  4209  4209 F DEBUG   :     x12 0000000000000018  x13 0000000000000008  x14 000000775c9e1cc0  x15 0000000000000008
12-04 12:25:37.179  4209  4209 F DEBUG   :     x16 ffffffffffffffff  x17 0000000000000030  x18 000000775cf20000  x19 000000775bd899f8
12-04 12:25:37.179  4209  4209 F DEBUG   :     x20 0000000000000018  x21 000000000000001c  x22 0000001c00000402  x23 000000775dc89000
12-04 12:25:37.179  4209  4209 F DEBUG   :     x24 0000000000249430  x25 000000775bd15ff8  x26 000000775dc89000  x27 000000775be9f2b0
12-04 12:25:37.179  4209  4209 F DEBUG   :     x28 000000775be95000  x29 0000007fe049c150
12-04 12:25:37.179  4209  4209 F DEBUG   :     sp  0000007fe049c140  lr  000000775dbab6c0  pc  000000775bd89a00
12-04 12:25:37.193  4209  4209 F DEBUG   : 
12-04 12:25:37.193  4209  4209 F DEBUG   : backtrace:
12-04 12:25:37.193  4209  4209 F DEBUG   :     NOTE: Function names and BuildId information is missing for some frames due
12-04 12:25:37.194  4209  4209 F DEBUG   :     NOTE: to unreadable libraries. For unwinds of apps, only shared libraries
12-04 12:25:37.194  4209  4209 F DEBUG   :     NOTE: found under the lib/ directory are readable.
12-04 12:25:37.194  4209  4209 F DEBUG   :     NOTE: On this device, run setenforce 0 to make the libraries readable.
12-04 12:25:37.194  4209  4209 F DEBUG   :       #00 pc 0000000000081a00  /data/snd/NC2/libc.so.6
12-04 12:25:37.194  4209  4209 F DEBUG   :       #01 pc 000000000003e6bc  /apex/com.android.runtime/bin/linker64 (__dl__Z19call_ifunc_resolvery 16) (BuildId: 4a559408e8da42af235cf9e971c68c35)
 

Список библиотек, которые я включил для кросс- компиляции, таков: libtensorflowlite_c.so ,libpthread.so.0, ld-linux-aarch64.so.1, libc.so.6, libc .so ,libdl.so.2, libm.so.6, librt.so.1,libstdc .so.6, libgcc_s.so.1. (Все эти библиотеки имеют Linux в качестве ОС и arm64 в качестве архитектуры для развертывания).