Включая готовый общий объектный файл в проект NDK

Привет, я работаю над включением файла общего объекта на образ ОС Android через проект NDK.

файл android.mk выглядит следующим образом

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE := Myaccessories
LOCAL_SRC_FILES := libMyaccessories.so

include $(PREBUILT_SHARED_LIBRARY)

и я добавил "libMyaccessories.so" в папку jni, где находится android.mk. На ndk-build это приводит к ошибке, как показано ниже

Prebuilt       : libMyaccessories.so <= jni/
Install        : libMyaccessories.so => libs/armeabi/libMyaccessories.so
/home/Identive/Desktop/android-ndk-r7/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-strip: Unable to recognise the format of the input file `./libs/armeabi/libMyaccessories.so'
make: *** [libs/armeabi/libMyaccessories.so] Error 1

Пожалуйста, помогите мне, если кто-нибудь сталкивался с этой проблемой, или предложите мне другие методы.

1 ответ

Просто поместите файл.so в подкаталог libs/armeabi/, и он должен автоматически включиться в состав вашей сборки. Не упоминайте об этом в LOCAL_SRC_FILES, так как это не исходный файл.

Если на эту библиотеку ссылаются из нативного кода, а не только из кода Java, вам, возможно, потребуется перечислить ее в LOCAL_LDLIBS, но я был бы очень удивлен, если это не значение по умолчанию.

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