我正在通过NDK项目将共享对象文件包含到Android OS映像中。

android.mk文件如下所示

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE := Myaccessories
LOCAL_SRC_FILES := libMyaccessories.so

include $(PREBUILT_SHARED_LIBRARY)


并且我已经将“ libMyaccessories.so”添加到了android.mk所在的jni文件夹中。在ndk上构建时,将导致如下错误

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


我该如何解决?

最佳答案

只需将.so文件放入您的libs / armeabi /子目录中,它便会自动包含在您的构建中。不要在LOCAL_SRC_FILES中提及它,因为它不是源文件。

如果该库是从本机代码(而不只是Java代码)引用的,则可能需要在LOCAL_LDLIBS中列出它,但是如果这不是默认值,我会感到非常惊讶。

10-01 22:25