Включая готовый общий объектный файл в проект 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, но я был бы очень удивлен, если это не значение по умолчанию.