2

您好,我正在通过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”到了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 

请帮助我,如果任何人都遇到这个问题,或者建议我用一些其他的方法。

+0

FYI xyz.so不是和共享对象文件。 xyz.so ir共享库。目标文件是xyz.o文件。 – 2012-02-09 19:20:11

+0

那么如何添加共享库文件? – Britto 2012-02-10 05:55:41

+0

劳伦斯下面写了该怎么做。 – 2012-02-10 06:56:50

回答

0

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

如果该库是从本地代码引用的,而不仅仅是Java代码,则可能需要将其列在LOCAL_LDLIBS中,但如果这不是默认设置,我会非常惊讶。

+0

尚未更改android.mk文件,ndk-build引发“无法识别输入格式”请帮助我的android.mk文件 – Britto 2012-02-10 04:13:25

+0

然后您的文件是不是真正的ARM共享库。你从哪里得到你的共享库? – 2012-02-10 06:57:15

相关问题