【问题标题】:Including a prebuilt shared object file in an NDK project在 NDK 项目中包含预构建的共享对象文件
【发布时间】:2012-03-01 14:12:37
【问题描述】:

我正在努力通过 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

我该如何解决这个问题?

【问题讨论】:

  • 仅供参考 xyz.so 不是共享对象文件。 xyz.so ir 共享库。目标文件是 xyz.o 文件。
  • 那添加共享库文件怎么样???
  • 下面的劳伦斯已经写好了要做什么。

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


【解决方案1】:

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

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

【讨论】:

  • 但更改 android.mk 文件,ndk-build 抛出“无法识别输入格式”请帮助我 android.mk 文件
  • 那么你的文件并不是真正的 ARM 共享库。您从哪里获得共享库?
猜你喜欢
  • 1970-01-01
  • 2011-09-04
  • 2012-04-09
  • 1970-01-01
  • 2012-12-28
  • 1970-01-01
  • 2020-07-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多