【问题标题】:Add a prebuilt .so file to android project and load it using dlopen with ndk将预构建的 .so 文件添加到 android 项目并使用 dlopen 和 ndk 加载它
【发布时间】:2012-09-11 13:41:15
【问题描述】:

我还有一个预构建的共享对象文件 (mylib.so) 和 API 文件 (mylib.h)。现在我必须在我的项目中包含这些文件。我想使用本机接口调用这个库中的函数。

但是为库提供的头文件不是JNI特有的头文件,而是普通的C头文件。我想使用dlopen 加载这个库并使用dlsym 获取符号。所以我可以使用dlsym 返回的函数指针调用这些函数。

我的要求

--> Android.mk 文件

--> dlopen (lib_path, RTLD_LAZY);安装 apk 文件后 mylib.so 的路径

如果有人这样尝试并成功了,请帮助我。

【问题讨论】:

    标签: android-ndk makefile


    【解决方案1】:

    从第二个问题开始,调用 Java System.Load("my") 以将 libmy.so 放入内存通常比使用 dlopen() 更容易。在您的 JNI 模块中,如果需要,您仍然可以使用 dlsym(),但通常如果您向 Android 中的链接器提供 libmy.so,它会自动找到正确的导出函数。 mk.

    请阅读相关的NDK文档http://source-android.frandroid.com/ndk/docs/PREBUILTS.html:它的解释真的很好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-01-20
      • 1970-01-01
      • 2017-05-29
      • 2014-02-10
      • 2016-08-21
      相关资源
      最近更新 更多