Instalowanie gotowego pliku binarnego na Androida: „not found”

Próbuję zainstalować wstępnie skompilowany plik binarny w niestandardowym obrazie Androida. W tym celu skopiowałem go do nowego katalogu wprebuilt/android-arm/ zAndroid.mk plik podobny do tego:

<code>LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)

LOCAL_SRC_FILES := binary_name
LOCAL_MODULE := binary_name
LOCAL_MODULE_CLASS := EXECUTABLES
include $(BUILD_PREBUILT)
</code>

Więc jeśli ucieknęmake system_image binary_name, plik binarny jest kopiowany do/bin/ w obrazie systemu. A jeśli uruchomię emulator, zobaczę plik binarny w/system/bin. Uprawnienia są takie same jak inne pliki wykonywalne (-rwxr-xr-x) i zgodnie zfile, to jest plik binarny ARM (ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), stripped).

Ale kiedy uruchamiam go na emulatorze, mówi:

<code># binary_name
binary_name: not found
</code>

Straciłem to i to widzę:

<code># strace binary_name
execve("/system/bin/binary_name", ["binary_name"], [/* 9 vars */]) = -1 ENOENT (No such file or directory)
write(2, "strace: exec", 12strace: exec)            = 12
write(2, ": ", 2: )                       = 2
write(2, "No such file or directory", 25No such file or directory) = 25
write(2, "\n", 1
)                       = 1
io_submit(1, -1344063348, {...} <unfinished ... exit status 1>
</code>

Ale plik jest tam i strace jest w stanie go znaleźć.

Czy wiesz, co może się zdarzyć?

AKTUALIZACJA: Jak mówi Kristof, jest to prawdopodobnie problem dynamicznego łączenia, ale nie mam ldd dla Androida ARM ...

questionAnswers(1)

yourAnswerToTheQuestion