android - 在 NDK 项目中包含预构建的共享对象文件

标签 android android-ndk embedded-linux shared-objects android-ndk-r5

我正致力于通过 NDK 项目将共享对象文件包含到 Android 操作系统镜像中。

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-built 上,它会导致错误,如下所示

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 中提及它,因为它不是源文件。

如果该库是从 native 代码引用的,而不仅仅是 Java 代码,您可能需要在 LOCAL_LDLIBS 中列出它,但如果这不是默认设置,我会感到非常惊讶。

关于android - 在 NDK 项目中包含预构建的共享对象文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9205245/

相关文章:

android - 错误 "Unable to find resource id "

android - 将 int main() 更改为 JNI 接口(interface)原型(prototype)

android - 使用 android 独立工具链交叉编译 C 源项目时构建错误

audio - arecord 创建的多个文件

c - 避免 ANSI C 中的 SD 卡损坏

Android/iOS 点对点架构

图像周围带有红色圆形边框的 Android Piccaso

java - 如何将 jdbc 连接器连接到 MySql 数据库服务器?

android - 使用 NDK 在 Android Studio 1.0.2 中生成 .so 文件

linux - Linux 中的蓝牙配置文件信息